* *Puppet generates a command + args to generate... from a erb template*
I did it because zone_soa.sh syntax look like:
zone_soa.sh <many params> <nameserver1> <nameserver2> ... <nameserverN>
I don't know another way to generate cmdline with a different numbers of args.

* *Puppet executes those commands, which the main command is another erb template*
In a template the path to files of zones changes only. As alternative I can pass zone_dir as a parameter to zone_soa.sh. 

* *That templated script is a script that echos out a the zone file components into the real zone file*
When I used echo directly in Exec I had a row of problems: different versions of puppet do this different, and i wrote some workarounds. I am afraid that in other Puppet versions workarounds wan't work.

*What if you took a different approach:*
* *Make it exec a sed -i 's/SERIAL/$date_in_seconds zone.data' > zone*

Hmm...
If we create real zone file via **concat** with *SERIAL* as template and notify **exec** with **sed** then next time Puppet update zone file to set **real serial** to *SERIAL* (because the file will different from concat template).
If we create fake zone file with SERIAL as template and notify **exec** with **sed** we will have two identical files (except SERIAL) and one Exec. I don't see big difference between my variant in this case.