I don't necessarily agree. Perhaps I'm misunderstanding something. If one is using the first select to populate the second, replaceOptions fires the change function on the second select. But I'm already using the change function (say, to submit the form) for when I actually pick an option from the second select. If the second select's change is firing on it's dynamic population, the form gets (automatically) submitted without actually picking an option. Do you see the problem? I think think the replaceOptions should fire the "init" callback not the "change" one.
In any case, preventing the change callback in the replaceOptions() method using the false flag seems to work for my purposes. Thanks again Dan!