Use Digital Input mapped to Freedrive in Remote Mode

So basically, if i want a physical button that activates the freedrive i have to use a SoC that handles additional digital IO and connects to a Socket and sends a program like
def Program():
freedrive_mode()
end
?
why is it even necessary to bypass it this way?
is there any restriction defined in DIN-ISO 10218 that forces UR to block this function?