Я думаю, что на этот раз и Java, и люди .Net ошиблись, было бы лучше сделать все сериализуемым по умолчанию, и нужно отмечать только те классы, которые вместо этого нельзя безопасно сериализовать.
Например, в Smalltalk (язык, созданный в 70-х годах) каждый объект по умолчанию сериализуем. Я понятия не имею, почему это не так в Java, учитывая тот факт, что подавляющее большинство объектов безопасны для сериализации, а некоторые из них - нет.
Маркировка объекта как сериализуемого (с интерфейсом) волшебным образом не делает этот объект сериализуемым, он был сериализуем все время , просто теперь вы выразили то, что система могла найти самостоятельно. Поэтому я не вижу реальной причины для сериализации такой, какая она есть сейчас.
Я думаю, что это было либо плохое решение, принятое дизайнерами, либо сериализация была запоздалой мыслью, либо платформа никогда не была готова выполнять сериализацию по умолчанию для всех объектов безопасно и последовательно.