`typeof` returns "function" for functions. `Y.Lang.isObject()` was for some reason written to return `true` for functions by default, which is unnecessary and confuses people.

The `paginatorModel` behavior is confusing to me, and what you've described doesn't seem to match up with what this code is doing. If `ModelClass` isn't an object, you instantiate it. But you said above that `paginatorModel` is either a model instance or a model configuration, both of which would be objects and neither of which is an instantiable class.