When starting from scratch you can probably plan your top-level lead and problem types around the idea of top-level types matching up with pipelines.
However, pretty much all our migration customers are going to want a default pipeline to be set based on choosing the second or third level of problem/opportunity type. (we have this issue on both opportunity and problems, many customers will have the same)
THIS IS PRETTY EASY TO ACHIEVE IF WE :
a) we add a field for default pipeline against TypeLevel 2, 3, 4, and 5. (exactly same as we do at type level 1)
b) when you choose level 1, you get the default pipeline assigned at that level. then you choose a level 2, and if there is a default assigned at level 2, then that overrides whatever is currently selected, if you select a level 3, that overrides and so on.
This doesn't seem too much more complex than we have now, but allows more flexibility and will better support migrating customers