There seems to be an irrational fear of query string amongst web developers, probably driven by the SEO-myth "URLs must not contain ugly characters".
Query string
is a part of the standard
has well-defined meaning and use cases
isn’t deprecated or obsolete in any way
can be easily parsed by search engines.
It’s always a good idea to add resource identifiers to the URL path, usually in a form of a “slug” or, in same cases, 2-3 hierarchical slugs, but that’s all. Everything else (including sorting, pagination and filtering) belongs to the query string.
The best SEO-related thing you can do with CGridView sorting/filtering/pagination URLs is disable search engine indexing on them and make your content avaliable for serach engines via other types of navigation (ie. menus with fully optimized URLs). This way you can also avoid duplicate content problems.
Also consider the fact that search engines won’t fill filter fields.