If you want to To expire the cache after one minute I'll I would pass '60' as lifetime (in seconds).
However the fact that the value zero (0) behaves like -1 is for legacy reasons. For a long time the cache was accidentally wrong implemented (lifetime > 0). So many implementations in the field already rely on the fact that 0 is also cached forever. And we'll not change the implementation to keep these old projects happy.
In my opinion it also makes no sense to use a cache which is only valid for less than a second.