All apis (FPC and LCL) preferrably have method-parameter overloads with Rawbytestring, Utf8String (if Rawbytestring version is absent), UnicodeString.This minimizes the implicit conversions before method-calls.
I don't understand where the opposition comes from.
Is this the origin of the problem, Lazarus users still want "String",regardless of the encoding behind it, regardless of differences in usage (eg. character access to utf8 and utf16) ?
Coming from Delphi you probably forget that most of the other ecosystems like unix and mac are mostly UTF8 centric.