Ah, essa parte me pegou: "Já toquei em Rust para entender mais sobre owernership, um conceito único de Rust."
Com todo o respeito, jovem, isso é quase uma piada.
Você vai aprender de verdade o que é ownership, tempo de vida de variável e gerenciamento de memória quando estiver lutando contra um segmentation fault em C, sem a menor ideia de qual ponteiro inválido causou o problema.
Ownership não é um conceito que você "entende" porque uma linguagem te contou sobre ele; é uma disciplina que você aprende praticando.
Você está colocando o carro na frente dos bois. O compilador de Rust te dá bronca e te impede de fazer besteira. O compilador de C te dá os parabéns e deixa seu programa explodir na sua cara. A segunda opção ensina muito mais.
Na verdade, para aprender Ciência da Computação na essência, a resposta nem é C. É Assembly. E sabe por que o C é a porta de entrada perfeita? Porque a tradução de C para Assembly é praticamente direta. Você escreve um *ptr = ++val; e consegue, com pouco de esforço rastrear exatamente quais instruções aquilo gerou.
Agora, tenta fazer isso com as abstrações de alto nível, macros e a "mágica" do compilador de Rust ou do C++ moderno. É quase impossível em muitos casos.
Se seu objetivo é realmente entender o computador sem superficialidades, o caminho é C. Ele te força a ser o "borrow checker". Ele te força a pensar em cada byte.
Um abraço e bons estudos!