Warning: I'm almost certainly far more ignorant of matters unicode than you!
But my innate reaction to reading your post is: don't use variable-byte characters.
That is, if you are in full control of the text you are manipulating: use UTF-32 for all your text. It can represent everything, and is easy to determine whether you have complete characters.
And even if some of the text comes from other sources, you will have to know what encoding it is in when you get it, and there should be nothing stopping you from re-encoding it to utf-32 whenever it is output from your processes.
Just a thought into the melting pot.
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.