Must I add a license block to all files in a multi file addon? When an addon grows it becomes convenient to break it out into modules, do those other modules (.py files) also need a license block or is it sufficient to only put it in the __init__.py.
No, but it's good practice. All the official Blender addon files have a license block.

https://stackoverflow.com/questions/845895/putting-license-in-each-code-file