Do functions really always take only one argument?
Yes, they do. But remember that maps like these $(x_1,x_2)\mapsto y$ (that so can be considered as being $x\mapsto y$) have a domain with an implicit structure: it will always be possible to say, given any point of it, what is the first component and so the "first argument" of the map, the second and so on. Otherwise it will make no sense a map like this $x\mapsto y,~y=\frac{x_1}{x_2}$
Correct, once you keep in mind that $f(x_1,\ldots,x_n)$ is a shorthand for $f ((x_1,\ldots,x_n))$, etc..
A function is defined as a mapping from a domain to a codomain. Thus if we want to make a mapping that depends on multiple arguments, say $a_1$ whose domain is $A_1$, $a_2$ whose domain is $a_2$, etc..., and outputs a value in some set $B$, then we define a function $f$ from the product $\prod_{i\in I}A_i$ into the set $B$ which takes the arguments $(a_i)_{i\in I}$ and sends them to a value in $B$, denoted by $f((a_i)_{i\in I})$. If $I$ is finite then we simply write $f((a_i)_{i\in I})$ as $f(a_1,\ldots,a_n)$. However $I$ could be infinite or even uncountable.