I can speculate about the reason for this limitation, but I will refrain from that.
I know I am not the only one who has brought this up as an issue, but if badges are based on it, at least do the right thing and use local time.
EDIT Someone suggested that changing a user timezone creates a problem.
All times stored in the database are UTC. If Jeff and co just do two passes for whatever logic is used for checking the badges (one for UTC - like the way it exists now, and one for local time I think that would be far more preferable. )