Create a form in a db that you can access through the web server.
Create an agent that posts a message to the server console and run it in WebQuerySave of the form.
Add to the form several buttons that perform all sorts of formula, include one that performs a FileSave and one that performs a ToolRunMacro.
Compose the form and click the buttons. You'll see that the only time the WebQuerySave agent puts a message on the console is when you click the FileSave button. It never runs on any of the other buttons.
So Either WebQuerySave only runs on a save, or my Web server is severely hosed (which I severely doubt.)
Despiite whatever ToolRunMacro may require, it doesn't cause WebQuerySave to run.