¿Qué cosas críticas hace un sistema operativo para volverse ‘autosuficiente’ durante el arranque desde un disco duro?

La computadora comienza cargando un sector de arranque (más o menos, vea más abajo), que es el primer sector en el disco. Un sector es bastante pequeño, por lo que el código del sector de arranque debe descubrir cómo cargar un poco más de código. Una vez que se carga ese código, determina en qué disco está, qué interfaz de disco se usa, etc. y luego determina qué sistema de archivos está en uso y dónde está el núcleo.

Aproximadamente. Hay algunas alternativas, donde el firmware del sistema ya conoce los discos y sistemas de archivos y ya conoce la ubicación del núcleo para cargar. Si ese es el caso, la computadora arranca y carga el kernel directamente.

Después de que el núcleo se carga y ejecuta (y ocurre un montón de inicialización y varios controladores saben qué hacer), el núcleo busca en el sistema de archivos el primer programa que se carga y ejecuta. En los sistemas Unix / POSIX, ese primer programa es init [1]. Carga y ejecuta eso, que luego cargará y ejecutará lo que se suponga que haga el sistema, como ejecutar un servidor web o servidor sshd o configurar un indicador de inicio de sesión de UI, etc.

[1] Wikipedia: init

¿Por qué la autosuficiencia es una meta?

Un sistema operativo por diseño es un medio, no un fin. Por su propia naturaleza, simplemente se usa como trampolín para lanzar cosas reales.