It is currently possible to build an invalid Schema instance using the SchemaBuilder, without any error being thrown. The schema in question is invalid because of redefined record types. These are not picked up by the SchemaBuilder. Failure eventually occurs when calling the Schema.toString() method.
I suggest that failure should occur much earlier such as at the point of introduction of the redeclared record name in the case of SchemaBuilder. This would make it easier for users to better determine the point of origin of their schema issues.
Note that there does not appear to be a similar issue with the Schema.parse(String) method which fails fast as expected.