In edx/XBlock#200 I explain what it does, and there is some discussion about type conversion.

Basically we agreed that enforce_type should make a best effort to coerce the type.

Please consider when it is run: it processes the data being assigned to the field, and there is a lot of code around that assign random types, including the very code that loads XML attributes (this is the reason this PR exists)