Yes, this reminds me of meta-programming in languages like Python, it's useful if you want to create a framework like Django, but if you work on products, chances are good you should not use it.
Because they are really really difficult to get right almost as difficult as building a new language. But when they work well they can be a real boost.
I'm not comparing on those terms. I'm comparing about "being supposed" to do something. We may have the ability, but that doesn't mean that we will do everything we have the ability for.
Sure it does. UTF-8 is constructed such that characters from lower ASCII have the identical 1-byte encoding. You might be thinking of UTF-16 or UTF-32, or non-ASCII characters...