\processdelayedfloats should restore the re-defined environments
Since \efloat@restorefloats is used in \processdelayedfloats inside a group, its effect is only locally, needed for \efloat@processfloats to work correctly.
But I think it would be a good idea to re-define \processdelayedfloats to \relax and to restore the environments globally since having \processdelayedfloats multiple times in a document results in both undefined behaviour and unwanted behaviour.
So a new definition of \processdelayedfloat could look like this:
\newcommand\processdelayedfloats{%
\let\processdelayedfloats\relax
\efloat@restorefloats
{\def\baselinestretch{1}\normalsize
\processdelayedfloats@hook
\efloat@processfloats
\processotherdelayedfloats}}
If this is not an option (compatibility reasons?) there should be at least a documented user command which restores the re-defined environments, for example \restoredelayedfloats:
\newcommand\restoredelayedfloats{%
\efloat@restorefloats}
BTW: \efloat@restorefloats already existed in v2.4i of the endfloat package. So it should neither be changed nor renamed, instead \restoredelayedfloat should just be a wrapper macro around \efloat@restorefloats.