If a query parameter name is urlencoded (as it should), drupal_get_query_array() does not urldecode it.
This bug was long time partly compensated by drupal_http_build_query() not urlencoding query parameter square brackets, which was fixed in #2289867: [D7] W3C HTML5 Validation error with PHP array-based query-strings built with url() containing [ ] characters.
Said fix now leads to a regressions when modules rely on drupal_get_query_array(drupal_http_build_query($x)) === $x
. Most notably views, see #2909709: Links to entity URIs with special characters in query parameter names are broken, especially since Drupal core 7.55 and the code snippet there. Prio major as this breaks existing sites, especially when they work with faceted search urls which contain query parameter names like "f[0]".