This is a limitation of the MySQL text field that we use to store content. While this could in theory be adjusted to a MEDIUMTEXT or LONGTEXT field it requires more store space (2KB overhead for TEXT, 3KB for Medium Text, 4KB for LONGTEXT) which adds up a lot with large numbers of post. Further it's incredibly rare for people to post that much data. For that reason it's not the default.
In theory an extension could add a migration to change the data field to a MEDIUMTEXT or LONGTEXT format, however dropping that migration to revert the changes could have very large negative impacts. Also changing that datatype via extension or manually could possible damage future Flarum upgrade migrations.
Note: UTF-8 characters can use 1 or more Bytes (Emoji often use 4) which further limits the amount of text allowed.