What you are not allowed to do is call a user-defined function that updates the database (non-autonomous) as part of a select. IE a select is not allowed to update the database.
In the example,the function is able to be executed and the value returned, and then the insert done.
You probably wouldn't be able to do an INSERT ... SELECT change_emp
Probably not an UPDATE either (the update needs to select the rows to be updated)