All Flarum data is stored as UTF-8 (MySQL utf8mb4_unicode_ci
collation) so all Unicode values can be stored. The limitations are most likely related to data validation and routing.
Post content shouldn't have any special limitation. Some dangerous invisible Unicode sequences or invalid combinations of Unicode points might be refused/converted by TextFormatter but Flarum itself doesn't blacklist any character.
Same with discussion titles, there shouldn't be any limitations to what characters can be used.
Usernames have to be limited to ASCII for technical reasons (URLs and uniqueness checks). We have introduced Nicknames as a solution for international display names. There is no plan to change how usernames work in core. It is possible to register a custom profile URL slugger based on user ID + nickname slug similar to how discussions work, the API is there for it. A community extension could easily implement it, but none exists at this time as far as I'm aware.
For discussion slugs, we use Laravel's built-in slugger (which itself uses other popular slugging libraries) because it works for a vast majority of character sets. We are aware not all languages in the world are supported, but it would require too much work to handle this in Flarum itself. Instead community extensions can create custom sluggers with relative ease.
FoF Transliterator was such an extension offering custom sluggers, but it was retired after we (FriendsOfFlarum collective) realized all the included custom sluggers weren't actually more capable than Flarum built-in slugger. The same principle can still be used for other custom sluggers though.