Donald Knuth is credited with saying:
"Premature Optimization is the root of all evil"
Programs should first be correct before it is optimized.
In Categorization, we have a parallel but a much wider problem.
Premature Categorization is the root of all evil.
The problem here is complex, and there is no easy solution.
People building a Zettelkasten experienced this.
Fixed categories are bad, but flexible categories require frequent revisions.
In specific domains where we already have some pre-knowledge, such as when writing a thesis, it can be beneficial to make initial guesses as to the categories and sub-categories that could be used.
The use of tags is a partial solution, tagging can be delayed, tags can be overlapping, and they allow some ambiguity. Furthermore, change of tags is not too difficult. But tagging also has weaknesses such as inconsistencies and sometimes makes search more difficult