Question: I'm studying statistics, and in a lot of textbooks, the regression formulas always refers to the functions themselves as f(x) parameterized by a,b,c or something. And they are often written $f(x; a,b,c)$, why can't we just write $f(x, a, b, c)$?

I would like to know perhaps the history of how this came about, and why there is this seemingly dual method of expressing the same idea. Is there some esoteric mathematical notation that a noob like me hasn't encountered yet, or did mathematicians of old just like doing things in different ways?

An example: A function that maps age of tree to height:

$$f(age; growth\\_rate) = age \* growth\\_rate$$ vs $$f(age, growth\\_rate) = age \* growth\\_rate$$

Answer: 
In fact there is a formal distinction between parameter and argument, which captures our subjective view.

Let $P$ be the parameter space (set of growth rates), $X$ the domain (set of ages) and $Y$ the codomain (set of heights). A family of functions from $X$ to $Y$ parameterised by $P$ is formally a function $f: P \rightarrow Y^X$, where $Y^X$ is the set of functions from $X$ to $Y$.

In other words, it is a function taking growth rates and returning maps from ages to heights.

Of course, you are correct that this naturally and uniquely corresponds to a function $F: P \times X \rightarrow Y$, that is, a function taking a growth rate and an age and returning a height. This natural isomorphism is succintly denoted by

$$ \left( Y^X \right)^P \approx Y^{P \times X}$$
The area where I am used to seeing parameterizations is when considering curves and similar geometric objects. Consider a curve drawn in $\mathbb{R}^3$, this is just a set of points and initially is not a function of any kind. But we can in fact make it into the image of a function by defining a mapping $f:[0,1] \rightarrow \mathbb{R}^3$ which 'traces' the curve as the input variable goes from 0 to 1. So in this context a parameterization means taking an object that is just a subset of a given space and defining a mapping whose image is the object we are interested in. The inportant thing here is that the choice of this mapping is arbirtrary, in that there are an infinite number of different functions we could define whose image would be our object of study. Hence calling it a parameterization really is indicating that we have chosen a suitable functional description, but indicates that it is not unique.

This seems the same as for the function example you give, as there are any number of ways of taking the heights of trees and defining functions which map to these correctly for each tree. So your semicolon notation appears to simply be saying that this function has been chosen to use growth rate along with the fixed age input in order to define height, but is indicating that there were other choices you could have made instead.