That makes sense. I'm curious, why not use strip_tags instead of htmlspecialchars so none of the html code is displayed?
Update: Actually, I do see the function you're using in pp-inc but I admit I'm not entirely clear on the results. My understanding is that strip_tags removes the entire tag and the text between the brackets, so the html code would not display in the category listing as it does now, which would be perfect. But doesn't the str_replace kinda prevent that? I'm sure I'm wrong so I'll wait for your explanation.
Code:
Content visible to verified customers only.