Não lembro onde, mas uma vez já ouvi que o C não é exatamente uma linguagem de baixo nível, mesmo sendo bem parecida com uma ela ainda não te obriga sempre a gerenciar memória na mão, acho que esse era o motivo. Mas realmente C é um ótimo ponto de partida para aprender programação

C é baixo nível, mas é mais fácil e prático que assembly no geral. Como C tem que ser portátil, você não escreve instruções de assembly diretamente, porque cada arquitetura vai ter suas próprias instruções.

Mas se você precisar, você pode escrever instruções de assembly no C. Já vi fazerem isso em códigos de jogos de N64, onde a performance do código C não é suficiente. Exemplo:

__asm__("movl %edx, %eax");

Mas pensa o seguinte, o código do kernel Linux é majoritariamente feito em C, e kernels são coisas extremamente baixo nível.

Creio que houve outro comentário, com mais relevância que o meu, que explica o porquê de não ser baixo nível. Dei um exemplo de memória mais do que me lembrava mesmo

C é basicamente um assembly portatil se bobear