I agree that `SymPy.Lambda` gives us more information, is more robust, and is easier for us to work with.  However in my experience it's only often used by relatively experienced sympy users.  It would be nice to support novice users as well. 

In the non-univariate case the function will likely raise an error, this seems acceptable to me.  I don't fully understand your concern about extending to expressions involving arbitrary constants.