dnf upgrade install additional packages if required?
Yes. I tested
dnf upgrade --releasever=28 on Fedora 27, and it proposed installing additional packages.
dnf upgrade ever remove packages?
dnf upgrade will remove packages which are no longer needed (and were not manually installed?), if the
obsoletes option is set. Despite
man dnf showing an option
obsoletes option is actually enabled by default. (And
dnf.conf does not unset the default, unless you changed it).
dnf upgrade is basically trying to mimic
yum upgrade. See also this answer: In CentOS, what is the difference between yum update and yum upgrade?)
There is also an option
--allowerasing, "Allow erasing of installed packages to resolve dependencies." In this case, I can only assume that the option is not enabled by default. And hence if you don't specify the option, the day-to-day
dnf commands will never erase installed packages to resolve dependencies. (Although you don't have to pass this option to the command for distribution version upgrades,