Hi Renso,
In answer to your first question – client-side filtering usually just filters the visible data. Google “javascript grid,” click on the first result, and I believe you'll find an example: http://dhtmlx.com/docs/products/dhtmlxGrid/. From what I understand, that grid implementation offers both methods of filtering, client-side and server-side.
In answer to the last: I think you are understanding correctly. Some client-side features – like filtering and sorting – are precluded by very large data sets. Consider, for example, 100,000 rows of grid data. As you suggest, client-side filtering would not be desirable in such a case, due to the performance issues.
But in other cases, where there are, e.g., several hundred rows of grid data, or even fewer, it becomes quite feasible, not to mention convenient for the user and better-performing, to load all of that data to the client-side all on one page and have it sorted there and filtered there.
Thanks,
Mike