SelectionKey (実際にはそのチャネル) が特定の種類のイベントに対して「準備ができている」ことの意味に対する決定的な答えがあるかどうか疑問に思っていましたか?
key.isAcceptable): クライアントが接続を確立した (SYN を送信し、サーバーが SYN + ACK を発行した) ことを意味しますか?; ServerSocketChannel をバインドするだけでは「受け入れられる」わけではないため、そうであると思います(テストでこれを確認しました)
key.isReadable(): ソケットの受信バッファがいっぱいではないということですか (もちろん空も含まれます)? それとも、受信バッファに未読バイトがあるということですか? (key.isReadable() の場合でも channel.read() は 0 になる可能性があるので、これが最初だと思います) - しかし、やはり確かに「休眠状態」のチャネル (開いているがクライアントがデータを送信していないチャネル) です。セレクターの選択されたキーセットで繰り返し返されませんか?
答えは「実装依存」だと思います