'cacheDuration' => false, sets cache file expiration date to 1 year
Yeah, it's slightly awkward.

First off it should be '0', instead of false if you want it to cache indefinitely (documentation bug, just fixed).

It's slightly awkward because the cacheDuration config setting is used for multiple things, but when the TemplateCacheService uses it, it requires an expiration date (not optional).

So if it sees 0, it will just pick one reasonably far out (a year), but you can set it to something higher if you want.

What should probably happen is everywhere that uses the cacheDuration config setting should have its own, separate config setting.

Not going to happen for Craft 2, but make a note to look at it once Craft 3 launches.