Really, it's necessary to handle tag blocks from upstream providers if tag blocks are to be produced for the gpsd output..
People who need a tag block when none is available from upstream could prepend one to an incoming AIVDM/AIVDO sentence or
(as I think you are suggesting) where no tag block source is seen by gpsd, it could generate one one using current utc time and some default info for other tag block fields.
The reason that handling upstream tag blocks is necessary is that sometimes (particularly satellite feeds) there can be considerable latency between when the message was observed and when it is sent downstream by the provider. Also, some satellite data providers have a query facility where you can ask for all messages from a certain time range in the past. When you ask for these, they arrive with a tag block timestamp that represents the time when the message was observed, not when it was sent downstream..