básicamente es necesario porque te permite ejecutar el código justo después del DOM cargado, de lo contrario tratarías de aplicar un CSS a un elemento
que en dicho instante no existe, es por ello lo importante de esperar a que el DOM se cargue, también se puede usar el evento onload del body