In general, I find it useful for any node that deals with pose estimation to publish a PoseStamped / PoseWithCovarianceStamped in addition to tf. Also, it's nice to have a flag which enables/deisables the pose and tf publishing, letting the user choose which one they want. The rationale behind this is to allow different components, which may publish partial and conflicting observations about the pose in a given frame, to be used together. If they publish poses, then can be used as input to a higher-level package which fuses them, and in turn publishes a tf.
This applies to any odometry, visual odometry, ekf filters, slam, etc pipelines.
I have adopted this convention for the laser_scan_matcher, with publish_tf defaulting to true and publish_pose_stamped defaulting to false.
So in short:
+1 for a flag to enable PoseWithCovarianceStamped
+1 for a flag to disable tfs
Cheers,
Ivan