I found out that, when I create fields programmatically with rather small internal names, the very first character of that internal name will get encoded.
For example: BN67 becomes
_x0042_N67. The character B has been encoded. Why does SharePoint do this?
So far, longer field names have not produced similar behavior.