STM32 "USB Device" vs. "USB OTG HS" - what is the difference?
Your thought are correct: the devices that are marked "Yes" in the USB device column are just able to act as a USB device. They don't support the OTG spec, and they are not able to act as a host either.

But of course, any device capable of USB OTG can, on the other hand, act as a simple device. He who can do more can do less.

They identify them in this way because the "USB device", "OTG FS", and "OTG HS" are three different IP cores in the chips. They all have their particular capabilities/specs, and they may require different drivers (as you noticed).

To sum up:


USB device: only able to act as a device, at full speed (12Mbps)
USB OTG FS: able to act as a device/host/OTG peripheral, at full speed (12Mbps)
USB OTG HS: able to act as a device/host/OTG peripheral, at full speed (12Mbps) or high speed (480Mbps). Note that the HS core for [the vast majority of]* ST MCUs require an external ULPI PHY chip to actually support high speed. The on-chip PHY can only do full speed. ...Yes, it's very confusing.


*Edit: It seems ST finally made some efforts to integrate a on-chip high-speed PHY on a few of their newest MCUs (more specifically: some of the STM32F7x3 and STM32F730 versions, at the moment). However, there isn't a specific column that clearly indicates this feature in their device selection table, which again adds to the confusion. You need to look at the datasheet details.