realscripts when sups are not defined
In realscript there is a test for the sups property. This fails and so realscript falls back to "fakesuperscript", which is implemented by using a smaller font size. So you should redefine \fakesuperscript
:
\documentclass{article}
\usepackage{filecontents,fontspec}
\usepackage{realscripts}
\usepackage{xcolor}
\renewcommand\footnotemarkfont{\addfontfeature{RawFeature={+sups}}}
\renewcommand\fakesuperscript[1]{#1}
\usepackage[paperwidth=180pt,paperheight=150pt,margin=10pt]{geometry}
\setmainfont{TeX Gyre Pagella}[FeatureFile={pagella.fea}]
\pagestyle{empty}
\newcommand{\red}[1]{\textcolor{red}{#1}}
\begin{document}
There\footnote{Note.} \red{¹} are\footnote{Note.} \red{²}
far\footnote{Note.} \red{³} too\footnote{Note.} many\footnote{Note.}
footnotes\footnote{Note.} in\footnote{Note.} this\footnote{Note.}
little\footnote{Note.} sentence.\footnote{Note.}
\end{document}
Naturally this means that the other superscripts will be too large and not raised ;-).
Edit
Imho there is a bug either in fontspec or luaotfload: The FeatureFile-option creates a correspondent extended lua/luc-file which contains the information that sups is available, but either luaotfload or fontspec checks only the "normal" luc-file. This needs more investigation.
Edit 2
I think it is a fontspec bug/missing feature. With luaotfload alone I can test for the sups feature without problems:
\documentclass{article}
\usepackage{luaotfload,xcolor}
\font\test="TeXGyrePagella:mode=node;script=latn;language=DFLT;+tlig;+trep;featurefile=pagella.fea;+sups;"
\font\testb="TeXGyrePagella:mode=node;script=latn;language=DFLT;+tlig;+trep;"
\begin{document}
\test test123 \directlua{if luaotfload.aux.provides_feature(font.current(),"latn","DFLT","sups")
then
tex.print("true")
else
tex.print("false")
end}
\testb test123 \directlua{if luaotfload.aux.provides_feature(font.current(),"latn","DFLT","sups")
then
tex.print("true")
else
tex.print("false")
end}
\end{document}