M.-A. Lemburg writes:
I am not sure whether this is the right way to approach this problem, though, since it affects all extensions -- not only ones using Unicode.
Given that unicodeobject.h defines many macros and size-sensitive types in the public API, I don't see any way around this. If the API always used UCS4 (including in the macros), or defined both UCS2 and UCS4 versions of everything affected, then we could get around it. That seems like a high price to pay.