My favorite bit of Awk code that I ever wrote was this print formatting program for the HP LaserJet II:
https://github.com/geary/awk/blob/master/LJPII.AWK
It printed source code in a "2-up" format, with two pages printed side by side in landscape mode. It looked for the kind of separators that I and many people were fond of back in those days (the source code is a good example) and converted those to graphic boxes. And it tried to be smart about things like breaking pages before a comment box, not after.
I wish I still have a sample printout handy. For 300 lines of what I thought was fairly cleanly written Awk code, it made some nicely formatted printouts.
It's true that many programs might well just have a single action (or a single action plus a BEGIN and END), but I'm not sure that resorting to awk -f will give great offense.
if you're interested, you could give my tutorial(https://github.com/learnbyexample/Command-line-text-processi...) a try
it has over 300 examples..
if you are interested in text processing in general, do check the other chapters for grep/sed/perl/sort/paste/pr/etc
I learned a lot writing them up and marvel at the speed and functionality provided by these tools.. for many cases, it is lot easier to write a bash script combining these tools than to write a Perl/Python/Ruby script..
There are a few things I have done which felt more difficult than they should. However, the vast majority of dealing with structured data using awk really has been a pleasant surprise.