(Paraphrased from Andrew Morton) Given that everything runs at late_initcall time, we may want to put all the KUnit code (core and tests) in __init, __initdata etc so all the code and data doesn't hang around forever? It is worth pointing out that we are considering allowing at least some tests to be made into loadable modules that will be run after the kernel is booted.
Note: The original discussion can be found here: https://lore.kernel.org/linux-kselftest/20191011140536.03c3e25500b31ddcfa0f542b@linux-foundation.org/
KUnit no longer runs strictly in late_init: It now has module support, and there is ongoing work to make it run at arbitrary points in time via debugfs.