presentViewControllerand dismissViewControllerAnimated(最初に指定されたアニメーションを使用)を呼び出すことができるのでdismissViewController、3回提示でき、3回却下できるスタック構造のように見えます。たとえば、ヘッドとしての「提示」ビューコントローラのチェーンと「提示された」ビューコントローラ。これは、実際には別の「提示された」ビューコントローラ自体です。
この場合、しばらくすると実際にオーバーフローする可能性があります。新しいView ControllerNを呼び出し続けてpresentViewControllerも、却下しない場合です。ドキュメントは、可能性があることを警告していないようです。