The answer I can find in the FAQ is as follows
An object stays in an edge location until it expires. After the object expires, CloudFront must go back to the origin server the next time that edge location needs to serve that object. By default, all objects automatically expire after 24 hours.
However, I've been noticing recently that objects seem to be getting updated much more frequently than this. I tested a text file and changed it, and within the hour it reflected the change.
I'm just not clear if this was a fluke - or if they changed the expiration rules. Is this country/region specific - or were they just doing routine maintenance at the exact hour I tested (unlikely!) ?