Removing packages with -Rns is often way too aggressive and non-orphaned/needed packages can be lumped in with the orphans due to the relationship between the packages. See also this related discussion:
It is better to use just plain -R to remove your orphaned packages, and just run it twice or thrice in a row until no more orphans are found. Or, use the cleanup function that SGS mentioned (which does the same thing).