Regarding fallback to client side paging: this already happens if a dialect
does not support server-side paging. I personally prefer to have
transparant fallback to client side paging than exceptions because
NHibernate assumes that my custom SQL can always be manipulated in such a
way that server-side paging will work.
The concrete use case where I run into this issue is where I fetch a single
record using a SQL Server stored procedure. Code like
session.GetNamedQuery("SelectViaStoredProc").UniqueResult currently throws
an exception if I use the SQL Server 2000/2005/2008 dialects.