Some use cases for custom setup.py:

* Add data files to the project. For example, this could be some supporting data files that spiders require, or pickled scikit-learn models for data extraction or classification, or even read-only sqlite database. They go under "package_data" setup.py key.
* Custom scripts that should be available on scrapyd server; they go under "scripts" setup key. 
* Excluding some files from distribution; they can be excluded e.g. using 'exclude' argument to find_packages.

This is not an evidence, but all scrapy projects I touched last month had setup.py customized for one or more reasons from the above, and there could be reasons for using custom setup.py other than those 3. I see that this feature (custom setup.py files) is not widely used everywhere, but at least in some environments developers rely on it, so we can't just remove it without providing a (better) alternative.

Re template changes: you're right that templates are not changed in this PR, but I was answering your question "Couldn't they just edit the template in that case?" -  templates are in scrapy so changing them requires changing installed scrapy.