Creo que tanto la gente de Java como la de .Net se equivocaron esta vez, habría sido mejor hacer todo serializable de forma predeterminada y solo necesitar marcar aquellas clases que no se pueden serializar de forma segura.
Por ejemplo, en Smalltalk (un lenguaje creado en los 70) cada objeto es serializable por defecto. No tengo idea de por qué este no es el caso en Java, considerando el hecho de que la gran mayoría de los objetos son seguros para serializar y solo algunos de ellos no lo son.
Marcar un objeto como serializable (con una interfaz) no hace mágicamente que ese objeto sea serializable, fue serializable todo el tiempo , es solo que ahora expresaste algo que el sistema podría haber encontrado por sí mismo, así que no veo una buena razón para ello. la serialización es como está ahora.
Creo que fue una mala decisión tomada por los diseñadores o la serialización fue una ocurrencia tardía, o la plataforma nunca estuvo lista para realizar la serialización por defecto en todos los objetos de manera segura y consistente.