Based on https://www.consul.io/docs/architecture it seems conventional to have exactly one Consul agent (either in client or server mode) running per machine.
Are there reasons or specific use cases where we should run multiple agents on the same machine?
One agent per physical machine or VM is the recommended model. Running additional agents will increase resource utilization on the machine. You will also need to ensure that they bind to different IP addresses in order to prevent port conflicts.
If the goal is to support multi-tenant access, Consul ACLs can (and should) be used to control access to resources in Consul. As the cluster operator you can create tokens for each user / application on the machine, and grant them access to the required minimum set of services, KVs, etc they need to support their application.