To determine what can be removed from a system, I usually break my system down into core components and audio / control paths-- put each module into a group based on that module’s primary purpose or the primary way you use it, then think about the different routings each group can have between each other. I typically break categories into audio sources, cv sources, audio manipulation (filters, effects), and utilities (cv manipulation, vca).
Generally speaking, my best rigs were when I had a very few number of audio sources (3 max in 2x104hp) and a higher number of cv sources. Utilities should be balanced across both of those-- e.g., you probably want at least 1 vca per voice in your system, and more vcas (audio or CV) wherever you want to add dynamics. Fill in the rest with effects, if that’s your thing.
I also put a high priority on workflow, which usually means having a greater number of utility modules.