I understand that the requirement here is to have a MATLAB function saved in a '.m' file and also exploit the advantages of MATLAB Function block in Simulink. A possible workaround to solve this issue is illustrated below:
1) Create a '.m' file contatining the function.
2) Call the function within MATLAB Function block in Simulink.
The following example illustrates this idea:
Create a MATLAB file 'addMul.m':
function [A, M] = addMul(x,y)
Now, call this function within the MATLAB Function block as follows:
function [A,M] = fcn(x,y)
The corresponding MATLAB Function block looks as follows:
By doing so, you could meet both of your requirements.
Hope this helps!