(2) "Нестандартное" - это как сам реализуешь. У него вообще ничего нет на старте. Только минимум-миниморум хуков для переопределения, чтобы заработали стандартные механизмы. А сверх того хоть API на 100500 методов реализуй - все в твоих руках. С чем тут смиряться? А как иначе можно было? :)
Хотя, если подумать... Возможно и стоило стандартизировать API по выборке... Но слишком много ньюансов при этом возникает. Слишком простое будет - плохо. Развесистое - тоже плохо. Поэтому вероятно и забили.