If I’m reading the query right that looks like it would be the safest in terms of not doing any wrong deletions.
And better than my MAX which assumes NULL and may in fact miss some NULL
I don’t imagine leaving any bogus rows would have much effect on performance.
The only possible problem that I can think of might be if a member has set notification level for something, the corresponding topic would be reset to Normal
And I don’t know for certain if that could happen, though as the bogus gets added last I think it might be possible.