Can a language be Turing Complete if its only provision for unlimited code/memory is through recursion?
Given your very strict interpretation of limited memory size, limiting
also the size of integers, one consequence is that it is not possible
to play encoding games with integers (such as Gödel enumerations or
encodings).

Another consequence is that you cannot have a way of retrieving the
address of a memory location in order to make pointers. The reason is
that unbounded recursion implies that memory addresses will have
unbounded size (which is a bit inconsistent on the implementation
side, but I guess I have to ignore it). If there was an instruction to
retrieve the address of a variable, the space needed to store this
address could well exceed all of the memory available for a given
recursive call. Hence there is no hope of manipulating addresses.

Hence, each recursive call can only access a finite amount of
information, say $n$ bits, which may be seen also a one of $2^n$
symbols. There is as much information, i.e. one of those symbols,
memorized for each of the previous calls, but not accessible on the
recursion stack.

Of course a little bit of information is passed as parameter at each
recursive call, and some is returned when it terminates.

So all this pretty well describes a pushdown automaton.

Hence all you can do is recognize or generate context-free languages,
or some equivalent computation. You are pretty far from Turing
completeness.

But if your model allowed storing pointers to local variables, then,
even without Gödel encodings in integers, you could have Turing
completeness.