yes, it is inconsistent. All I can add, is how Maple and Mathematica do it:
Maple:
-----------------------------------
1/0;
Error, numeric exception: division by zero
subs(x=0,1/x)
Error, numeric exception: division by zero
------------------------
Mathematica:
----------------------
In[1]:= 1/0
Out[1]= ComplexInfinity
In[2]:= 1/x /. x -> 0
Out[2]= ComplexInfinity
---------------------
I do not know what Matlab does not differently in your example.
But note that using Mupad directly, it does not do it as you show:
-----------------------------------
>>evalin(symengine, '1/0')
Error using symengine (line 59)
Division by zero.
>> evalin(symengine, 'subs(1/x,x=0)')
Error using symengine (line 59)
Division by zero.
---------------------------------
So the 1/sym(0) giving Inf must be have been short-circuited to
Matlab numerical evaluator, since 1/0 gives Inf and it was
not send to the syms engine. i.e. 1/sym(0) was just treated
as 1./0. (adding syms to 1 did not make any change).
--Nasser