What if an installed port's newer version requires a new dependency port which is not installed? Will portupgrade -af automatically install the new dep or?
In my practice, portupgrade -af never succeeded for all installed ports. I always had to at least manually reinstall things or sometimes do a make clean, in few cases it required more actions. That's about the intruding reality. And, since portupgrade uses much time to evaluate dependencies and it does not seem to skip once evaluated ones, it's sometimes faster and safer to deinstall/reinstall.
By the way, a strange behavior is shown by portupgrade -NRn portX which is expected (to my mind) to show all ports that would be installed as dependencies for portX, but it shows nothing except the very portX (i.e. without recursion).