Yes I think a switch should be done. Maybe just one. So ad_page_contract will run in includes and form. Since that is new changed behaviour.
Keeping and upgrading api in tcl is a bit harder I guess.