>>831
vendor/rails/activerecord/lib/active_record/validations.rb
をつらつら眺めるに、

 ActiveRecord::Base.validates_presence_of() が呼ばれると、
 その検証用メソッド(実際はブロック)が生成され、
 クラス変数 @@validate などに追加される。

 実際に検証が必要なとき (ActiveRecord::Base#valid? が呼ばれるとき)、
 @@validate などに保存されている検証メソッドを順に呼び出すようになっている。

ということだと思いますが。