"Hardware encoding is more limited in terms of codec features and options, because putting the algorithm in hardware reduces the amount of options compared to the flexibility of software"
Flexibility ! = quality. Given a requirement you can design a hardware codec to do whatever codec / settings you want to - it will be much faster in hardware.
"So hardware encoders; faster output, same visual quality, higher bitrate."
But therefore, for the same given encoding time, a hardware encoder will give a higher quality output / and / or at a lower bitrate.