You may have guessed that I'm just up to Views in your book, and working up to use bootstrap thumbnails... but I can't help thinking ahead and thinking about database structure.
Your one table option could be achieved using a view? I've not got into yii using views, but I'm hoping that it'd be basically the same as using a table?
My thoughts on a separate view is that each module_has_tags table can also be used individually when displaying the module, and the view over the whole application. With my db hat on... the view would add the module_type.
I was thinking that the tags would only be added to the record when in edit mode, but I'm not sure that's reasonable or not?
The other thing was how it gets implemented... I had a look at a tagging plugin and it used behaviours.
I'm guessing that when viewing the result, that it's collected using a query (WHERE tag_id = this_tag_id)?