The most important thing is the whole team being in the same time zone. Even a 1 hour difference is too much. That may seem extreme, but I've had so many important discussions happen around 5pm near end of day when everyone's done with their main task and meetings and have time to think about something else. Then they realize it's really important and need to chat right now. If the team is not in the same time zone,…
It has been my experience that rarely do productive software developer depend on working with each other synchronously (is it the thinking that they share, or the typing?) and when they do, it's not hard to find a common time to meet between two timezones. It is also rarely necessary to meet together as a team on a very regular basis.
One catch is we would all meet face-to-face for a week two or more times per year. That was important for planning and socialization, but being apart was when 98% of the work was done.