ActiveRecord uses confusing defaults

I think you raise a very valid point. What surprises me is that I don't
remember AR acting up this way in older versions. Am I correct?
Regardless... this is not an acceptable behavior. Defaults should be
set at the table definition level if needed, not provided automagically
w/o the option of preventing this behavior.

As you pointed out, this renders validates_presence_of useless in many