I usually code where it is acceptable to keep calling the constructors all the way to the base cases.

Unfortunately that does not work with ```DateOffset```.

Adding ```super(_FY5253, self).__init__(n=n, **kwds)``` leads to:
```
  File "/home/alex/git/pandas/pandas/tseries/offsets.py", line 878, in __init__
    super(_FY5253, self).__init__(n=n, **kwds)
  File "/home/alex/git/pandas/pandas/tseries/offsets.py", line 79, in __init__
    self._offset = relativedelta(**kwds)
TypeError: __init__() got an unexpected keyword argument 'startingMonth'
```

because the ```__init__``` for ```DateOffset``` looks like:
```
    def __init__(self, n=1, **kwds):
        self.n = int(n)
        self.kwds = kwds
        if len(kwds) > 0:
            self._offset = relativedelta(**kwds)
        else:
            self._offset = timedelta(1)
```

```**kwds``` is consistent with other Offsets.