It seems that while you can reparent many blueprint classes freely, there are some artificial barriers that don’t make much sense. Specifically, a blueprint that was originally a subclass of an Actor, will not list classes that are subclasses of Object as available new parents. Also, a class that is a subclass of Object, won’t list classes that are subclasses of Actors as available new parents.
In the general sense, I understand this could be a difficult case. I don’t think Unreal should disallow the reparenting if I really do intend to change it however.
Another way to look at it: Were I in C++ I would not be disallowed from changing the parent class from a UActor subclass to a UObject subclass in this manner. And Blueprints should strive to provide the same flexibility in class hierarchy.
FYI, components also seem to fall into this category of immutability. Actually, I discovered it when I decided I wanted to change an abstract base from a Component to an Object. Which I think is a likely scenario. Where you designed some system/behavior to act as components, but realize later that they should be lower level and should just be UObjects instead.