I think this boils down to organisational structure and roles rather than anything particular to do with code or infra.
If you have a team who looks after infra and a team who looks after code then having separate deployment processes makes sense.
If you have service centric teams where each team is responsible for the infra and code of a service, then having a single deployment process which deploys both infra and code makes more sense.
If you have neither and are trying to decide which to implement. I think the latter is considered better, and more DevOps, the idea is that the service must meet its SLAs but what code or infra it uses to do that is up to the service provider, and thus they should be able to deploy a whole new service using a totally different set of infra and code.