In parsing a few short log samples of all received URLs, I've noticed that we definitely do have inconsistencies in query parameter sorting. This in turn leads to cache duplication, which wastes space, wastes cache hit opportunities, and makes any related purging harder (in the case that they're even purgeable or purged).
Most of the examples I notice have to do with the relative ordering of the parameters action, ctype, feed, feed, format, printable. Some are mobileview queries, too. We could endeavor to "fix" this on the client side (in client app code, and in the parameterized URLs we emit in our own content output). We could also normalize it on reception at the cache layer by sorting all parameters, e.g. with https://github.com/vimeo/libvmod-boltsort . The biggest question-mark is whether we think all of our code is insensitive to query param order or not. It probably should be, but that's not necessarily true.
Relatedly, we could also normalize and/or fixup (again, in our output or clients) the unnecessary use of defaulted parameters. The most-obvious example is debug=false for load.php, which is commonly present and also probably the default, but redundant with the same query that might come in without the debug flag.