Well the lighter solution and more Pythonic solution is strong typing. If a Unicode string and a byte string could not be combined then the problem would not exist AFAIK. For example "a" + 1 is an error, why is u"a" + "s" not an error?
"a" + b"s" is an error in Python 3.
Static types solve it earlier though, especially for little-exercised code paths which could be forgotten or missed in testing.
The programmer would probably just try to fix it via str(u"a")+"s" or u"a" + unicode("s").