For some extensions, we need to have a different behaviour for different civicrm versions.
I can either manage two branches, but I'll have to backport some fixes and that seems a big overhead. For most of our extensions, I'm tempted for a lighter approach with a single code base