Hi - this is a somewhat complex answer based on your infra architecture and requirements
Therefore I can only generalize (as I dont know those things)
APIM (Premium sku - which is currently the only sku supporting private in AND private out)
If you use a hub spoke model where the Firewall is used to control intra spoke (and intra network) traffic including n/s (internet) then it's common to deploy APIM to it's own spoke - along with an App GW if you need that to proxy internet ingress into APIM. Doing so allows you to "plug in" APIM through the Firewall which remains central to ensuring APIM can only reach the services it should reach and clients can only reach APIM , that should reach APIM. Consider also that APIM may not be operated by the same team that operates hub + networking services.
Service Bus
This doesnt live in your network at all, it's a externalized multitenant PaaS service.
In the premium sku publishers and subscribers can access via a private endpoint
Networking for Service Bus is always one way, client , be that publisher or subscriber, dials in. Service bus NEVER dials out. So then it's more a case of where you need your private endpoints - these tend to be deployed close to the app that needs the private endpoint. For example, if you have a web app which need to integrate with service bus and that is deployed in a spoke as a publisher into service bus (for example), then it makes sense for the private endpoint into service bus used by the web app to be in an adjacent subnet of the same spoke.
If the subscriber to those messages is a back office system which exists in another spoke, then it's private endpoint would also be in the same VNET
Logic Apps/Functions Apps
Logic Apps Standard , Web Apps and Function (premium) Apps all run on App Service plans . Logic App WS plans are a superset of Functions Elastic Premium Plans which are closely related to regular App Service Plans
With that in mind, App Service also exists outside of the vnet/spoke. You can deploy private endpoints for ingress into the App Service (or funcs/logic apps etc) and if you need to communicate with downstream depends on the network then you can utilise "regional vnet integration" for outbound traffic. In both cases it makes sense for the subnets required to be in the same vnet/spoke for the workload
Functions consumption and Logic Apps consumption cannot be linked to a virtual network.
Typically you would have a app/workload per env and it would generally make sense for these to be represented by different spokes (for isolation)