I just modified my routes.yaml to look something like this:
routes:
/portfolio/art/:
controller: channel
filter: tag:portfolio+tag:art
/portfolio/figure-drawing/:
controller: channel
filter: tag:portfolio+tag:figure-drawing
/portfolio/pixel-art/:
controller: channel
filter: tag:portfolio+tag:pixel-art
collections:
/portfolio/:
permalink: /portfolio/{slug}/
filter: primary_tag:portfolio
template: tag
data: tag.portfolio
/:
permalink: /{slug}/
template: index
filter: tag:-portfolio
taxonomies:
tag: /tag/{slug}/
author: /author/{slug}/
But somehow the portfolio tagged posts still show up on the home page. Though interestingly the issue does not occur when using the Casper theme.