If, e.g., a class both implements Writable and also either implements AvroReflectSerializeable or whose package is listed in the config, then which serialization is used is determined by the order of the serializers in the config, which could change. Similarly for the Serializeable interface and JavaSerialization. So its not safe to assume that the Class->Serialization map is fixed, and we should really be storing at least the serialization's name in container metadata, and probably also a version (e.g. serialVersionUID for JavaSerialization). And once we have a mechanism to support that, we can also store other metadata, like the schema, so that we can read older versions and generic data.
+1 for removing JavaSerialization from the defaults.
+1 for a separate Jira on serialization metadata. But it would be best to have such metadata by the 0.21 freeze, in two weeks.