Name derivation now works as intended

Note that I changed the default to DeriveAlways.  In practice, I've
found that that's typically what I actually want.  Less consistent, but
far clearer.