Old topics published via WordPress embed are missing x-robots: noindex and canonical tags

While that might make sense for your site, it would be a different feature from how topic embed canonical urls work. You could build it, but you’d have to do it as a custom plugin.

Canonical urls for embeds work as expected, however it seems at some point the embed records were deleted, or some other operation was performed on your site. Discourse doesn’t hard delete topic embed records so something else must have gone on there. Unless you do some custom work you’ll need to republish those topics to create the embed records again.