I know what "propagation" is, although that's a bit of a misnomer as it implies active propagation of new records instead of passive response to recursive requests which is actually the case:
www.example.com recursion:
1. Browser asks the OS for resolver, gets ISP's (or router, which in turn knows to recurse to ISP's)
2. .com is asked for authority on example.com, .com responds with domain registrar's NS
3. domain registrar's NS is asked for authority on example.com, it responds with Linode's NS (if you're using Linode, thatis)
4. Linode NS is asked for
www.example.com, responds with a record (A, AAAA, ...)
5. The record is cached for TTL seconds by the resolver in step 1
6. The record is cached for certain amount of time by the browser and OS's own cache
Never in my life have I had to wait for any amount of hours for new domains to "propagate" to whichever ISP I was using. The ISP's can't cache domains they don't know about. Also, they must obey domain TTL or parts of the internet would break (think round robin DNS, or geolocation).
That said, I did have to wait for ISPs to clear up the NX cache in cases where I erroneously tried a domain before verifying it was made available by the authoritative NS. So yeah, if you try a new domain before the NS actually publishes it, you'll end up waiting.
Edit: also dyndns would never work if ISPs didn't check up unknown domains immediately.