Obrigado pelos complementos.
A crítica sobre estruturas é exatamente isso: para quem não sabe o que é, como funciona e quer sair usando por aí. É interessante aprender o conceito de tipo-por-referência e então tipo-por-valor, e entender como eles se relacionam com código de referências, nullables, instâncias e outras coisinhas interessantes que faz um ser bem diferente do outro.
E de facto, eu quase sempre evito usar dynamic
, salvo em casos que preciso lidar com tipos genéricos que não compartilham uma abstração comum.