Assuming you aren't writing all of your separate setter/getters manually, which means you're doing some of the typical method generation or AUTOLOAD monkeying, then the separate setter/getters don't buy you a whole lot. I concede that they can make mistakes apparent a little sooner. It's not at all hard to write a unified setter in such a fashion that it blows up just as quickly, though — actually it's trivial enough that I'll bet money on getting it right the first time. Mostly because it's not a point I needed to be made aware of either; I already do that all the time.
If you want me to ignore your chainable mutators, allow me to have a unified setter and I gleefully shall. :-)
If you're writing code that uses (rather than provides) mutator chaining though, and I'm going to be maintaining it later, then I shall keep arguing. My experience so far has been frustrating enough, I'd really rather avoid more of that. :-(
Makeshifts last the longest.