In the developments I've seen of primitive recursive and computable functions, the functions always have codomain $\mathbb{N}$, but are allowed to have domain $\mathbb{N}^{m}$ for any natural number $m$. This seems odd to me---treating the domains and codomains as fundamentally different.
One solution would be to allow functions $f\colon \mathbb{N}^m\to \mathbb{N}^n$ for any natural numbers $m,n$. Of course, such a function is really just an $n$-tuple of functions $(f_1,f_2,\ldots, f_n)$ where $f_i$ is just the $i$th coordinate of $f$, and computability for $f$ would amount to computability for each $f_i$.
However, I'm more interested in the opposite direction: limiting the domain to always be $\mathbb{N}$. This seems to match, more naturally, what an idealized machine is doing by taking in a single natural number and spitting out a single natural number (or not halting). Of course, a fortiori, one could develop the recursive functions as usual, look at the subclass of functions whose domains are $\mathbb{N}$, and called these the limited domain computable functions, and then show that from these we can reconstruct the non-limited functions in a simple way.
My question is if there is a more natural approach. Just as the recursive functions are built up from some starting functions, using very limited and natural operators, I wonder if there are ways to build up the "limited domain computable functions" similarly, in a non-"ad hoc" way. (For instance, it would be nice if we could do it without the need to develop a universal Turing machine first.)
In other words: Does the extra generality in the domain necessarily simplify the development of computable functions?