Wow… this is huge! I'm only half-way through, but this is an extraordinary example of how to reduce complexity by reducing the number of things that can interact with each other and replacing them with one thing that can represent all the other things in the former model.
Of course, the resulting model is on a more abstract level and a little harder to understand, but totally worth the effort as you completely define away some of the edge cases and exceptions you could encounter in the former model.