Some sort of caching problem, maybe?
This is the controller I use in a Kirby 2.3 starterkit and which works (but is the same as above anyway, I think)
<?php
return function($site, $pages, $page) {
if($tag = urldecode(param('tag'))) {
$articles = page('blog')->children()->visible()->filterBy('tags', $tag, ',')->flip();
} else {
$articles = page('blog')->children()->visible()->flip()->paginate(5);
}
$pagination = $articles->pagination();
return compact('articles', 'pagination');
};