Removing/changing things in UIPARENT_MANAGED_FRAME_POSITIONS does not break anything. I do it, and Nevcairiel does it in Bartender4, and I'm sure other addons that I don't use do it, and it's fine. Taint is not necessarily bad. Taint is only bad if it gets in the way of a secure code path, but tainting values in UIPARENT_MANAGED_FRAME_POSITIONS does not do that, and has not ever done that. While it could theoretically do that in the future, you can apply the same argument to anything, and then you'll never write any code at all.
You can alternatively set a "ignoreFramePositionManager" flag on the button:
Code:
DraenorZoneAbilityFrame.ignoreFramePositionManager = true
However, this won't stop the UI from moving other frames to accomodate the expected location of the zone ability button; you can't do that without either causing Big Scary Taint, or hooking a lot functions and calling a lot of SetPoint methods.
However #2, the DraenorZoneAbilityFrame isn't a secure frame, so if you just want to kill it, you should just be able to do the old hide-on-show trick:
Code:
DraenorZoneAbilityFrame:SetScript("OnShow", DraenorZoneAbilityFrame.Hide)