Over the years, we have found this to be the best method. Syncing each and every contact actually builds better communication because you have a more complete picture of activity. From a tech point of view, especially with 2-way syncing, more complete information leads to fewer duplicates being created by the system. The sync is also faster, and less prone to crashes or creating problems with other apps.
OK, but I don’t want all my team seeing all the contacts...just the ones relevant to them.
No problem. Owners can manage contacts so that certain users see only certain groups and have limited management abilities for those groups or they have no management functions whatsoever.