Acho que tanto o pessoal do Java quanto do .Net erraram desta vez, teria sido melhor tornar tudo serializável por padrão e apenas precisar marcar as classes que não podem ser serializadas com segurança.
Por exemplo, em Smalltalk (uma linguagem criada nos anos 70), todo objeto é serializável por padrão. Não tenho ideia de por que esse não é o caso em Java, considerando o fato de que a grande maioria dos objetos é segura para serializar e apenas alguns deles não.
Marcar um objeto como serializável (com uma interface) não torna esse objeto magicamente serializável, ele era serializável o tempo todo , só que agora você expressou algo que o sistema poderia ter encontrado por conta própria, então não vejo um bom motivo para serialização sendo do jeito que está agora.
Acho que foi uma má decisão dos designers ou a serialização foi uma reflexão tardia, ou a plataforma nunca estava pronta para fazer a serialização por padrão em todos os objetos de forma segura e consistente.