Adapting Capitalizing strings ignoring closed class words one can try this:
\documentclass{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\uncapitalize}{>{\SplitList{~}}m}{
\UncapitalizeFirst#1\Uncapitalize\unskip
}
\ExplSyntaxOff
\def\Sentinel{\Uncapitalize}
\makeatletter
\def\Uncapitalize#1{%
\def\next{#1}%
\ifx\next\Sentinel
\expandafter\unskip
\else
\CheckInList{#1}\space\expandafter\Uncapitalize
\fi}
\def\UncapitalizeFirst#1{\expandafter\UC@next#1 \Uncapitalize}
\def\CheckInList#1{%
\ifcsname List@\detokenize{#1}\endcsname
#1%
\else
\expandafter\UC@next#1%
\fi}
\def\UC@next#1{%
\ifx#1\UTFviii@two@octets
\expandafter\@firstoffour
\else
\ifx#1\UTFviii@three@octets
\expandafter\expandafter\expandafter\@secondoffour
\else
\ifx#1\UTFviii@four@octets
\expandafter\expandafter\expandafter\expandafter\expandafter
\@thirdoffour
\else
\expandafter\expandafter\expandafter\expandafter\expandafter
\expandafter\expandafter\@fourthoffour
\fi
\fi
\fi
{\UC@two}{\UC@three}{\UC@four}{\MakeLowercase}#1}
\def\UC@two#1#2#3{\MakeLowercase{#1#2#3}}
\def\UC@three#1#2#3#4{\MakeLowercase{#1#2#3#4}}
\def\UC@four#1#2#3#4#5{\MakeLowercase{#1#2#3#4#5}}
\providecommand\@firstoffour[4]{#1}
\providecommand\@secondoffour[4]{#2}
\providecommand\@thirdoffour[4]{#3}
\providecommand\@fourthoffour[4]{#4}
\makeatother
\begin{document}
\uncapitalize{Here is a List of Words École}
\selectlanguage{russian}
\uncapitalize{Москва Спасибо}
\end{document}
Unfortunately it doesn't work with commands or braced groups.