The answer you are looking for was indicated on the question that you related.
To summarize, the IL-to-native translation process is done in advance, but other parts of the Mono runtime are still required. Compiling JIT is only one of the tasks performed by the runtime, and this part is incompatible with iOS memory restrictions (pages with writeability to memory cannot be executable either, and this is necessary for JIT to work). This is AFAIK, the only reason compile-ahead compilation (AOT) is required at all.
The Mono garbage collector really works on iOS; it is simply embedded in the binary created by the Monotouch compiler. The resulting binary contains your AOT-compiled application code, as well as AOT-compiled versions of the libraries you use and a reduced version of the Mono runtime.
source share