the time complexity for the mult part can be found like this:
to calculate (mult a b), (internal a accum) is called until a = 1
so we have some kind of tail recursion (loop) that iterates over a.
we thus know that the time complexity of (mult a b) is O(a) (= linear time complexity)
(to-the-power-of m n) also has an (internal x accum) definition, that also loops (until x = 0)
so again we have O(x) (= linear time complexity)
But: we didn't take into account the time needed for the function calls of internal...
In internal, we use the (mult a b) definition which is linear in time complexity so we have the following case:
in the first iteration mult is called with: (mult 1 m) --> O(1)
second iteration this becomes: (mult m m) --> O(m)
third iteration: (mult m² m) --> O(m*m)
and so on
It is clear that this grows until n = 0 (or in internal this becomes x = 0)
thus we can say that the time complexity will depend on m and n: O(m^n)
[edit:] you can also take a look at a related question I asked earlier: Big O, how do you calculate/approximate it? which may give you a clue how you can handle the approximation more generally