Con get_defined_functions() puedes saber cuantas funciones está definidas en el ámbito global, que no significa para nada que estén cargadas en memoria, ahí hay que ser claro para que dejes de pensar que las 5000+ funciones se cargan siempre en memoria.
Y de las operaciones complejas que mencionas no es para tanto, yo pienso que un navegador gasta más recursos que cualquier script en php para manipular un XML, además entiende que son funciones a bajo nivel mucho más rápidas que las que llegarías a escribir.
Si crees que manipular cadenas es complejo entonces pienso que deberías tomar un curso de programación de mas bajo nivel, aunque tienes razón, pueden llegar a ser complejas pero no por eso lentas.
Las expresiones regulares son un excelente ejemplo, son complicadas y mucho más lentas que comparaciones con cadenas, etc.
La función mail() no es un algoritmo, simplemente es un proxy al SMTP local, ya que el servidor SMTP es que hace el verdadero trabajo, así que ahí PHP no tiene mucha gloria que digamos.
En resumen, no se cargan las N+ funciones
built-in en memoria, simplemente existen y se cargan hasta que se utilizan.