Been messing around a bit with the patching_rect command to multiple objects, and put together this simple set of 8 zoomable waveform~ objects. Pretty straightforward once I realized that I'd only need to determine the range of zoom (figure out all the sizes and positions at full zoom in and out), store those as two pattrstorage slots, then interpolate. Wasn't sure how well it would work but I'm very happy with it!
Hopefully this will give ideas for people to create patches with this functionality if it helps the UI, especially with objects you sometimes want to see a lot of at once, but other times have them big for more detailed interaction...thinking waveform~, bpfunction, itable, multislider. I'd be interested in seeing other people's experiments with this.
You need to save the xml file to get the settings I stored, for the zoom slider to work as designed. You can manually create some of your own settings too---it's a bit laborious at first, but when you get a range you like, pattrstorage will do the dirty work for you. Check out the "zoom settings" subpatch to do this.
[edit: one small glitch fixed, several other settings added.]