But to me, all Compute/Nova instances are VMs.
Strictly speaking, this is incorrect. Nova has a number of component parts. Simply put there is a API component which exposes the service interface and one or more compute components that talk to VM hypervisors. So, a single nova compute node can support multiple VMs. The idea is that you scale up Openstack by running more servers capable of hosting virtual machines.
For more details on how Nova works, I suggest reading the developer documentation:
http://docs.openstack.org/developer/nova/devref/architecture.html
I also recommend first learning the interaction between Keystone, Glance and Nova. Hopefully you'll begin to understand how each additional component adds more services to your cloud.