Well, that's easy: separation of concerns. Smaller packages, where each package has exactly one purpose, are much easier to handle. And if you have to update one package, you don't have to download the others (that most probably haven't been changed at all). We do the same thing with the software packages on the ASG by packaging everything in the famous RPM files.
I agree though, that it would be nicer (and less error prone) to have some kind of logic that manages the order in which packages can be uninstalled.
Well, that's easy: separation of concerns. Smaller packages, where each package has exactly one purpose, are much easier to handle. And if you have to update one package, you don't have to download the others (that most probably haven't been changed at all). We do the same thing with the software packages on the ASG by packaging everything in the famous RPM files.
I agree though, that it would be nicer (and less error prone) to have some kind of logic that manages the order in which packages can be uninstalled.