The Unicode preset includes Latin, Cyrillic and emoji text. UTF-8 uses multiple bytes for many of those code points, so capacity follows bytes rather than the visible character total.
Byte count is explicit
QRMaker reports the TextEncoder byte length used by the payload before asking the QR library to select a version.
Correction changes remaining capacity
Raising M to H can enlarge the matrix or reject a long payload because more symbols are reserved for recovery.