Um ponto me respondeu: é possível encapsular funções dentro de funções, correto? porque vi que dentro de uma das funções, o RETURN é uma outra função.
Sim, é chamado de closures, funções podem tanto receber como parametros quanto retornar outras funções.
Mas ainda continuo com uma dúvida: como transformo esse sistema de login em funcional, por exemplo?
Nesse caso sim, já é funcional. Acontece que a aplicação do paradigma funcional é mais sutil que a aplicação do OOP que exige muito setup. No caso de programação funcional o que vc tem que se preocupar é com evitar efeitos colaterais, sempre optar por funções puras, trabalhar na imutabilidade dos dados e etc.
Eu recomendo vc pegar uma linguagem puramente funcional pra entender como é o paradigma na prática, minha recomendação é a elixir, mas também tem outras como clojure, haskell, lisp e outras.