Short answer: Maybe the needed filesystem is not supported?
A little guessing: Most times because of the addressing limit.
We have block orientated filesystems in general, the blocks needs to be addressed and every address needs space.
For example: If you have 1MB and want a blocksize of 10kb, you’ll need a TOC (Table of content) of roundabout 102 ‘files’ (see inodes).
1MB=1024KB → /10 → 102,4 but an address can only be one, not a part of one.
But this means you can only store a maximum of 102 files, minus the TOC itself … The TOC need to contain every address and some meta information, like filename, size, ACL (or similar), date of creation, date of modification, …
Because you are clever, and don’t want to waste space on the TOC, you decide to store only 4 cluster with a size of 256kb each … Great Idea if you have 4 files with a size roundabout 250kb … But there is no space for a fifth file, even if all 4 files are only 4KB …
And don’t forget a directory is also a file (here is the reason for the ‘’ around file, above).
Wikipedia can explain this better than me: File system - Wikipedia
What I am trying to show: It’s complicated.
Sometimes it just don’t make sense, even if it would possible to use a larger storage, the access will be so slow, because the TOC needs to be accessed, cached and searched.
I don’t know what exactly is the reason for GL.iNet routers. But I trust the limitation they gave us.