I tend to use JModelList and JModelForm because this way PHP error logging will notify during code execution if your class has failed to meet some of its "contractual" class obligations from any of the parent/super classes.
The answer depends on yourself, and there is really no "wrong" answer here. Pick the method which makes the most sense to you and go with it.
** EDIT **
You can always load and instantiate a model class like so, using User's registration model as example.
JLoader::register('UsersModelRegistration', JPATH_ROOT . '/components/com_users/models/registration.php');
$model = new UsersModelRegistration();