The point is that the fk in different rows can reference different tables. I might want to be able to attach a tag to a person or a blog post, say. And then I want to find all the persons and blog posts with a particular tag, in a single query.
Could you just not turn that around?:
tag tag_id tag_desc
person person_id tag_fk references tag
blog blog_id tag_fk references tag
The simplest implementation is to have a table reference as a first-class value I can store in a field.