My view of a good developer is not about when they leave work; for me it's about whether they actually get the work done.
A developer can be the most knowledgeable on the team, but if they can't actually get something done it's not worth much.
Most developers in the real world has to sacrifice quality for quantity sometimes, and the product thereof could be buggy code. The fact is, a developer will spend more than half of his/her time maintaining code(your's or other's), rather than doing actual new development.
I also have my 8-5 structure, but it really doesn't mean anything to me: in my mind, I get paid to do my job - not to slave behind my desk each day.
I normally work from "whenever I get to work", until the tasks I set my "do this ****" list are completed(or parts thereof).
If I finish before five, I go home - otherwise my productivity will just drop to staring at mails for the rest of the day.
Some other things that come to mind when thinking of a good developer:
1. Still reads up a programming books(or articles) now and again,
2. Participate in OS projects or launches own projects,
3. Is profound in a language other than what the job requires.