In testR10, it would be reasonable to check 'assertEquals("...R10", r10schema.getProperty(CLASS_PROP))'.
For fail-fast, it might be good to check that c has a single string constructor. Obviously, the class reading might be totally different, but seems like this would catch errors in the common case. Up to you.
I'm ok with having generated code not work with the reflection interface. You could, again, use annotations to make that work. (@Utf8able on the Utf8 class, so that Avro reflection understands both String and Utf8 might work.) But I'm ok with it just not working.