Why is it dangerous to create a MaterialInstanceDynamic from a UObject?

I have a helper object (derived from UObject) which my Character creates, configures, and then calls methods on in order to build its skeletal mesh materials and sub-components.

I pass in the Mesh component of the actual Character to this object on call. In this UObject, I get the following warning:

“Function ‘Create Dynamic Material Instance’ is unsafe to call from blueprints of class ‘Object’”

What is this warning trying to tell me? Googling for the text shows me nothing helpful.

I also see a problem where, apparently at random, the color parameter on the dynamic material doesn’t actually take effect. Is this related?
Given that the call path is based on callbacks to the Character, what’s special about it being a UObject instead?