Eu acho que você faz um bom ponto. A maioria dos programadores deste site provavelmente trabalha com profissionais cujo objetivo é criar software de qualidade o mais rápido possível. Reinventar a roda falha este objetivo em duas contagens.
- Reescrever o código que existe é um esforço desperdiçado que pode ser usado nas partes exclusivas de seu sistema e faz com que o projeto demore mais do que o necessário.
- A primeira versão de qualquer código é mais provável de ter problemas com bugs / imprevistos. A maioria das bibliotecas e componentes reutilizáveis foram testados e corrigidos várias vezes. Se você reinventar um algoritmo de hash ou tentar criar seu próprio RDBMS (a menos que seja o que o projeto é), na maioria das vezes você terá resultados inferiores.
Dito isso, em um ambiente acadêmico, o objetivo é aprender , não entregar software com orçamento. Re-inventar uma roda para entender como os raios ou o eixo funcionam é uma ótima maneira de atingir esse objetivo. É por isso que muitos currículos de programação incluem uma classe na construção de compiladores, quando muito poucos programadores que trabalham já tiveram que fazer isso.