No. Canvases are such that your Max2D drawing routine should look after all of their own drawing, and so placing controls in the same region may cause undesirable effects. MaxGUI doesn't officially support any type of ordering, and so placing gadgets on top of each other (unless they are children to a group gadget, obviously) isn't recommended as the z-order isn't guaranteed to be the same on all platforms.
The trick is to make it a child of the canvas so the OS knows to draw it in front.
Are you sure that this would work with MaxGUI.CocoaMaxGUI or MaxGUI.FLTKMaxGUI? I think I remember there being a problem reported a while back which I dismissed as I thought this action shouldn't really be supported/encouraged. However, I stayed pretty much clear of the canvas code that you wrote, so I could be wrong...