I personally have only ever worked in a private physician practice (with 2-5 providers) or as part of a huge healthcare organization with hundreds of physicians plus NPPs.
In a smaller practice, you may even have the same person doing all the steps. Or 1 person more senior, with others to assist. Always in house by my experience.
In my current huge healthcare organization, the billers, coders, and A/R people are rather segregated. A/R for some insurances are outsourced overseas. We communicate really only through the computer billing system. It can create some miscommunication errors, or someone not fully understanding how a particular task should be handled. Remote working has (IMHO) exacerbated some of those issues.
Your situation is more medium sized. The best revenue cycle employees understand the full cycle, even if they are not experts in all of it. I think it's small enough to keep everything in house. But certainly don't have your most senior (aka highest paid employees) waiting on hold with an insurance company. 2 separate teams is a good split. But the 2 teams are still part of the larger team of the entire practice. It should never be "us" and "them". You are all one big "us". That needs to come from attitudes of supervisors/managers of the teams. Everyone on both teams should be willing to teach other members on either team about an issue that they have particular knowledge about. CPC-As often do great billing and A/R work since they have a grasp of that other end. I think it's a great place for all coders to start, but that's for another thread...