A startup I worked at in the mid-90's had people working in pairs: a server developer and a client developer. They didn't care what hours you kept as long as you didn't hold up the other person in your pair. I arrived around 9:30am daily. The client guy I was paired with came in around 8:30am. I always stayed later so I'd check in code before I left and leave a message for him about the progress. He tested stuff before I arrived and went over any issues when I got in. Then we'd work together the rest of the day. Other engineers came in at 10:30am, noon, and as late as 1pm. They worked it out with their other halves the same way I did.
I think wise managers work with the team, minding company-imposed limitations, rather than enforce personal preferences.
Late day meetings are great too if it works better for the team.
In my team's case, we also walk or ride bikes together at lunch. So we can also use that time if necessary, but usually we just keep it casual.