Detail: I think "installing" sources is fundamentally wrong. This is partly aesthetic, but that is derived from large scale systems experience -- there's the system, and there are the users, and building packages is a *user* function, not a *system* function. (The required use of /usr/src/linux for the linux kernel was a mistake [which was corrected years ago] -- and no, NetBSD is not a counter-example, the distribution can be rooted elsewhere and is, from their perspective, *one* build tree.)
Now, that leads to the question "how do we know what other sources are already in place, then?" but see my other suggestion for having dpkg-source handle source aggregation. (I don't like calling that "dependency" because it isn't -- prc-tools [an m68k cross compiler and other stuff for the pilot] *depends* on things like awk and make, but it *includes* gcc.) I don't think we *need* to know -- we just need to be able to get them so we can unpack them and do a build. Part of that is because "src.deb" files don't seem to solve a problem that I actually have. Once the src.deb files is unpacked, I now have the .tgz and .diff files on disk, sure -- but I *already* have them, in my local mirror. It looks to me like I'd install the collection of src.debs, and then dpkg-source -x, err, I mean "make unpack" [they *are* filling the same slot, right?]... whereas now, I'd just point some symlinks at my mirror and run dpkg-source -x. Another thought: while this looks somewhat convenient for someone unpacking the debian sources and building them, it looks a bit *messier* for those of us who actually produce the packages in the first place.