Ubuntu developers are currently exploring the possibility of using Mono AOT to reduce start-up time, allow for better memory sharing, and for greater performance optimizations.
Mono AOT is the ahead-of-time compiler for Mono. Besides Mono's JIT (Just-In-Time) compiler, they also have an AOT compiler in the Mono run-time code generator. Using the AOT compiler will generate the native code in advance with several benefits. Without having to do the compilation at run-time, the start-up time of Mono-based applications could be reduced. There's potentially increased memory sharing with the AOT method because the compiled code is all PIC, Position Independent Code, and will be shared across multiple Mono instances. The better performance can be done since the AOT compiler can squeeze out more extra CPU-specific optimizations that are not enabled by default with Mono's JIT compiler.
Ubuntu developers are looking at using the Mono AOT on Debian package installation. This idea is still early-on as they will also need to develop the infrastructure to invalidate Mono AOT caches upon any CPU changes and does come at a cost of a slightly larger disk foot-print. They're also investigating Mono AOT for ARM.
Those wishing to learn more about Mono's AOT compiler capabilities can do so at Mono-Project.com
On this page
are the "AOT compile mono libraries at install time" notes. This is a possible feature for Ubuntu 12.10, although there's plenty of people out there that would rather just see Mono code be outright abandoned.