Deborphan may need to be run iteratively (page 248)
More...Reported on: 2006-07-30
In chapter 5. The Debian package management system on page 248:
Deborphaner is not iterative (or recursive, depending on how you look at it). In one run it may suggest to remove a set of packages, but it fails to identify packages that would be obsolete if the user removed the packages suggested in the first run.
Discussion
Philippe Teuwen suggests the following loop:
while [ $(deborphan | wc -l) -ne 0 ]; do
echo "Purging $(deborphan | wc -l) packets:";
deborphan | xargs dpkg --purge;
done