デリゲートメソッドでUITextFieldの検証を行うtextfieldShouldEndEditingため、編集中のUITextfieldを変更するたびにメソッドが呼び出され、検証が実行されます。
キーボードの戻るボタンは、完了ボタンとして構成されています。押すと入力を処理しますが textfieldShouldEndEditing、最後に編集したUItextFieldが呼び出されることはないため、検証されません。
通常の動作では、ユーザーがフィールドに最後の文字を入力した後に完了ボタンを押すだけなので、これは私には奇妙に思えますが、これはtextFieldShouldEndEditingメソッドをトリガーしません。
これを実行するには、textfieldShouldReturnメソッドで再度検証を強制する必要があります。
ロジックが見つからないので、ポイントが足りないかもしれません。