lexical scope v let in scheme functions
In exxp-aux, you call (mX-let b prod) and (mX-lex b prod).  You probably meant the two calls to be identical.

In exxp-let, you call (mX-let prod b).

mX-lex and mX-let are both implemented such that they would be faster if you call them with the larger multiplicand first and the smaller one second, because the second parameter controls the number of additions.  Since prod is likely to be larger than b, your exxp-aux will be slower.