BFGMiner (at least) will also send mining.suggest_target("hex target") upon connection, if the user has a preferred target.
Why would it do this?
There is already mining.suggest_difficulty(difficulty)
No, there isn't.
Nothing implements this, and it isn't documented anywhere.
Using a target fixes the inherent problems with using difficulty as a Number:
- There is no agreement over which difficulty measurement is to be used. The official spec says bdiff; BTCGuild uses pdiff; various scrypt pools use Ldiff
- Some common targets (such as pdiff 1) cannot be accurately conveyed without huge data sizes
- Implementing conversion to/from difficulty accurately requires a bignum library, so often (eg, *gminer) it is just approximated.