Yeah, back in the "old days", when Autocad was basically just a bunch of primitive drawing objects, it was very easy to write Lisp routines to customize the primitive drawing objects.
But these days, there are all these "intelligent" objects that have a rather large number of features and capabilities. And while we can get to quite a bit of stuff via the API, there are still huge gaping holes, and large numbers of things we can't do via automation.
Unfortunately, one of those things we can't do via automation is "fix" the behavior of C3D labels. We could write a system of annotation that completely replaces C3D labels, but if we want to mimic all the other functionality of C3D labels, that is a rather extensive task.
I actually already have a routine in the Sincpac-C3D that will extract the contents of Point Labels into MLEADERs, which do not suffer this problem. But the MLEADER contents are not dynamic, and are lacking some of the other functionality of C3D labels.