"that Unicode was brought in [...] without considering any of the problems it would cause."
Sorry, but this kind of problems can't be tackled at the Unicode standard level - especially since the character appearance is also up to the font designer - Unicode may say a codepoint is "Cyrillic Capital A" or "Greek Capital Alpha Α" - but its actual glyph is designed by a font designer. They are different codepoints, and an application *can* say they are different.
As usual, a programmer should "never trust input" - and have some knowledge beyond simple IT.