I suspect if the submodule concept was done really well, it'd be disruptive. ie. if your version control could directly be your package manager, in a really slick and neat way. Or really really good autowatch/update/diff routines; ie. so your code maintains itself a lot of the time (as opposed to manually updating from master). You can wire all this stuff up now but it's not done really well.