WordPress Query String: get_posts(‘cat=5’) vs WP_Query( ‘cat=5’) vs URL: /site/?cat=5

Take look at official Query vars. You will see two columns and by then you will get why category__in doesn't work with the URL query string. (basically, the private keywords works only if you specify them in wp_query or so…)

About subpost, I am not a hundred percent sure, what it is. In the whole WP_Query it is mentioned only with attachments, take a look.