2) all dynamic search properties will be stored on the Proxy class in a VO property for that class. Merit: simple and standard Proxy Demerit: more class files, slight overkill for simple situations
This is the right answer. The details of the search conditions are something passed between the model and the view, and belong together as a group. You need to be able to pass them in a single call, and you don't want the mediator getting and setting scads of props on the view component.
Optimally, you show and set the search conditions on the form, click a button and the mediator tosses the SearchVO ball to the model side of the fence where the proxy takes them and sends them off as the single parameter to a remote search method.
So the only actors that need to know the details of the search conditions are the form, the search vo and the service that consumes it. No need for a mediator, command or proxy to know about those details if you can shield them from it.