You can do event based work with your own Messenger such as (http://wiki.unity3d.com/index.php?title=CSharpMessenger_Exte...) or the new ui system has an event system. You can also use C# delegates/events/callbacks as desired.
Their previous OnGUI based tick UI was meant for before mobile and caused many of these slower games. But there have been nice GUI systems like NGUI to help that. Their GameObject based SendMessage is too hefty and probably many new devs use that and have laggy games. Their core out of the box UI and messaging before Unity 5 was made for an era before mobile.
But if you know what you are doing it is C# underneath and you can always implement a messaging/event system, and many implemented their own UI or used popular assets like NGUI, EZGUI or DaikonForge (before they bailed when the new UI was released). The new UI is strongly influenced by NGUI as the original asset maker worked there on Unity UI, it took some different routes after he left but both are now very performance focused for mobile.
Garbage collection is one area where current mobile speeds are poor and hopefully IL2CPP can get to a place where it is optimized for that case. Now that Unity controls down to the metal it should be faster and better over time. They previously were locked to Mono 2.x performance on iOS though they still have to convert all their platforms other than iOS and WebGL.