The 10% rule relies on a number of assumptions:
- The corpus contains files with prose from a human language
- The files on average are reasonably large compared to their metadata
- The corpus does not contain code files (.cpp, .cs, ect)
Number 3 is because the index is compressed on disk assuming that words are going to be repeated often. This is true for most text (check out how many times 'the' appears in your index), but for code there are so many unique 'words' from variable names that it breaks this assumption.
In your case though I would suspect the issue is number 2, a lot of number of small files. There is a fixed amount of metadata overhead that comes with each file that needs to be stored in the index. For example, the index has to store the full path, date modified, date created, ect for every file on top of the contents. It adds up to about 3K per file, and if the average file size is 4-5K that is most likely the issue.
If search is important and you can't combine the file I recommend turning off indexing the contents of those file types that you have a lot of. It should reduce the size somewhat while still having the metadata of the file searchable.