In general most behaviors involving the "char" data type are what they are and you can either accept them as-is or change to text to get more logical/consistent behavior.
If you want a more in depth analysis of how char behaves in various situations there are a number of posts in the archives where people have taken the time to explain in detail what is happening. Or someone may do that here...but that someone isn't me.
If you want to claim these are buggy you'd need to point to documentation that isn't being adhered to not just expectations.