あー,うん。そう。メモリはO(1)ね。ループでもメモリ使用量は一定って処理は珍しくないよ。CPUは,さすがにO(n)よりは減らないだろうが。
別のツリーでも,ちゃんとテストしろとか上限チェックをしろとかいう指摘が入っているけど。今回のケースなら,メモリO(1),CPU O(n)なら,あえてそのままにする,という選択肢もあったと思う。
まず,検索結果なので,検索先の全数(DBの全レコード数)を超えることはないので,全部を表示されてもDoS攻撃にはならない,という前提があるとする。で将来的に,表示数を50とか100とかを選べるように仕様変更されるかもしれないので,上限はつけない方が変更に強くなるかもしれない。なにより,検索結果をみるときに,20とかで区切らずに全部見せろよ,ということ多いよね? そういう用途に,知ってる人だけつかえる裏技としてURLにn=9999とか書く方法を残しておくのは,まあ悪い選択ではないと思う。