If it's graphical, part of the drawing database and filed in and out on saves, then it's an AcDbEntity.
If it's non-graphical, part of the drawing database and filed in and out on saves, then it's an AcDbObject.
A toolbar, for example is neither - it's a programming object sure, but has nothing to do with the dwg dbase itself.
Dictionaries = non-graphical but in dwg dbase = AcDbObject for example.
The case with your Profile, I suspect, is that it is a "custom entity" defined by Autodesk to extend autocad for the civil market.
When defining a custom object in ARX, you as the programmer get to decide the "grip points" amongst other things.
Now if you generate a standard profile, it uses all it's internal code to generate and display it and allow interaction with it.
Now, if you go and add a custom block as a label I think you said, then that is not a part of the code/object defintion per se - it's an add-on.
Therefore, there was no defintion in the code to allow for creating "grip points" at the appropriate places for the objects that make up your block - hence the flakey behaviour in the OSNAPs on the profile - there should be, but there's not.
Hope this ramble makes some sense.
Cheers,
Glenn.