You probably read our documentation on Install the Server as a Cluster: Requirements:
All application nodes should be identical in terms of hardware and software. Similarly, all search nodes should be identical to each other. Application and search nodes, however, can differ from one another. Generally, search nodes are configured with more CPU and RAM than application nodes.
Search nodes can be located in different availability zones, but they must be in the same region. In this case, each search node should be located in a separate availability zone to maintain availability in the event of a failure in one zone.
And Configure & Operate a Cluster: Frequently Asked Questions:
Can different nodes run on the same machine?
Yes, but it’s best to have one machine for each node to be resilient to failures. To maintain an even higher level of availability, each of your three search nodes can be located in a separate availability zone within the same region .
So, to answer your question:
Is it allowed to have compute/application nodes in different availability zones in same region (in DCE cluster setup)?
Yes, it is allowed. Our documentation emphasizes that the search nodes should be placed in separate availability zones within the same region but we do not have any extra emphasis for the application nodes. You are welcome to use different availability zones in same region or not for the application nodes. Thus, your use case and testing will define what you believe is optimal for you in terms of cost, higher availability, performance, etc.
I highly suggest you read our Monitoring documentation as well, since this will detail a way to maintain better governance of your SonarQube instance.