Dispose
on the managed object will call release
on the native object, not dealloc
(but it may end up deallocating the object if nobody else has retained it).
Note that calling Dispose
multiple times will only call release
once.
Update
This turned out to be a bug in MonoMac / Xamarin.Mac (which has now been fixed).