This is sort of as designed. It relates to a possible information leak.
If you have this structure:
Category
--- Forum without view others
--- Forum with view others
If the "private" value is pushed up to the category, it would have to be based on last post date to determine if it were the most recent. This would lead to it display "private" when there was a new post in that forum, even if you couldn't see it. It's not a huge leak but it does still leak something.
The case where there's one forum (or they're all semi-private) could push this data up, but the code here doesn't obviously lend itself to that situation.