Вы забыли одну из самых важных причин: чтобы можно было применить меры безопасности (например, доступ root и не-root, права доступа к файлам, изоляция пространства памяти приложения и т. Д.).
Если пользовательский код имеет тот же доступ, что и код ядра, он может обойти все связанные с безопасностью бухгалтерские данные в ядре. например, обычный пользователь может затем перезаписать текущее поле uid на 0, автоматически сделав его корневым.