LazUTF8Classes and LazUTF8SysUtils are contained in Laz 2.2.6 - I would not call this "ancient"...
A use case of this feature could be a package supposed to work across a wide range of FPC/Laz versions. Here a version-dependent uses clause might be helpful (although it can be by-passed by a package-wide define in an include file checked by {$IFDEF ...} ).
They are contained in Laz 2.2.6 but not needed any more there. That's why they were deprecated for years.
LazUTF8Classes became obsolete with FPC 3.0 + codepage aware string types. It became obsolete already before being deprecated.
LazUTF8SysUtils was renamed because it had nothing to do with UTF8. Again it was deprecated for years, so it should not cause problems to any maintained code.
I think this is a key feature, this issue should be resolved.
Not really. In rare cases when a unit is removed from a public package, it is deprecated for a long transition period. It seems neither you nor the maintainers of BGRA read the deprecated warnings.
Please read what I wrote above.
LazUTF8Classes is not needed after FPC 2.x. Are you seriously still using such an old compiler?
Renaming LazUTF8SysUtils is not tied to FPC version but it was deprecated for many many years. Do you mean your code must compile with LazUtils from many many years ago? Why?