Working on apt-build, I had to use apt to manage a lot of things and I can tell you: APT IS A MAZE !

apt-build uses --print-uris option with install and source commands of apt-get, mainly to determine versions. But sometimes you will have an epoch in the deb file but not in the dsc one, another time you will have a source version which is different from the binary one, so you have to use apt-cache and when you want to use the apt-get <command> package=version command line format, you will have a headache if you do not care of what you are doing.

Sure it should use other things that system() calls to apt-get like a Perl lib, but for now... beer time.