Well, for me it's just a matter of consistency. Most of our writers are quite simple and don't really hold much in terms of state. However, it's a nice clean way to organize the code and group together methods. For example: https://github.com/gem/oq-nrmllib/blob/master/openquake/nrmllib/hazard/writers.py#L295