Ya, but that's not what one would call "working normally" str.charAt should just work, Utf8.whatever should only work on things which are explicitly utf8 (normal Haxe string nowadays are not). I will get to that (or I'll just bug Hugh about it).
str.charAt should work, will look into that. Utf8.whatever is only properly working after you used Utf8.encode I think. Maybe. No idea if the thing is up to date at all, docs still talk about iso strings, whatever that might be.
No, that in general doesn't work at all. g2 uses g4 if it's available so when you take a look at the g2 implementation you can carefully mix it with g4 but in most situation this will mess things up - in particular if you call g4.begin instead of g2.begin.