Encoding a 'u' into variable names for "unsafe" strings and omitting it for ones that have been encoded safely for HTML bodies is nice. If this is the only problem to solve and you can universally apply this technique then it solves the "NUL terminated string of the 2010s", and I may use it but…
What about encoded safely for URLs?
What about encoded safely for use as a Unix file name?
What about encoded safely for SQL? (yes, don't do that, I know).
How about encoded safely for 7 bit ASCII only applications?
How about the output of base64? It isn't unsafe for HTML, but it is for URLs.
What about that bit of HTML that the user entered using their WYSIWYG field that needs to be sanitized but not encoded? 'u' seems right, but Encode(uVar) isn't the proper handling.
How about that library that doesn't know the convention, so its function calls all look like they are encoded safely for HTML since they don't start 'Us'?
What about the library that used 'u' for UTF-8?
(Oh, and…
dosomething()
cleanup()
… is broken. Requiring a caller of dosomething() to remember to cleanup() is about as polite as leaving set bear traps in your living room furniture and reminding guests to check under the cushions before they sit. Programmers are used to that sort of abuse (Remember to fclose() what you successfully fopen()), but the future should really provide use with better constructs, and it not being 1980 anymore, we are the future.)