However you implement this, it would be nice if you could coordinate with @twMat — since their keywords solution is doing something quite similar — centrally storing as tiddler metadata what might have seemed tempting to store in a separate field (such as a keyword field) for each tiddler.
Compatible with your line of thought: Allowing keyword metadata to be outside the actual tiddler (on twMat’s rationale) has the benefit of playing nicely with shadow tiddlers, and (for some uses) one might want some such metadata NOT to follow tiddlers when they are exported, cloned, etc.