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.