Summary: I've created a more robust dependency resolver and posted it to version 1.0.3
JuuS from the lazarus mailing lists pointed out a problem with dependency linking. I had been using the "ldd" command to find dynamic libraries associated with your programs.
ldd (List Dynamic Dependencies) is a *nix utility that prints the shared libraries required by each program or shared library specified on the command line.
After considering the problem JuuS described I did a little research. What I found was that ldd actually executes your program, suspends it, then checks for attached shared objects. This can cause a problem as some libraries may load arbitrary objects based on the current system configuration.
I'm happy to report I've come up with a much better solution to resolving dependencies which doesn't involve using ldd. The new dependency logic is much faster, results in fewer depends entries, and works cross architecture even if you don't have a cross build environment configured.
The source code to Debian Packager is hosted on github
if you're curious about these changes.