I know that Deferred.done(a).fail(b) is identical to Deferred.then(a,b), apart from their syntax, but I want to know if there's a preferred way of syntax. 

Why would I use one over the other? Is there a best practice?
The only argument that I can come up with right now is that if I encounter the fail function 'b' in the .done(a).fail(b) situation, I *know immediately* that it is a fail function when I see fail(b), while I do *not* see that when I just see b in the then(a,b) situation. Any more arguments?