Because someone might use the write_fragment function in a different way in their own cache helper, meaning that I wanted to make sure the correct default was enforced.

Also I was trying to follow the way they had it set up. 

The cache method has the defaults set up, and it calls fragment_for which then has the same defaults once again.

The cache_if method also set then defaults, and it then calls the cache method. Its the same cache_unless which calls the cache_if etc etc.