Should a pure function take all of the functions it calls as arguments? After Wikipedia, if a function is pure, then:


  [it]  always evaluates the same result value given the same argument value(s). 


So: if a function, let's call it f, calls another function, g, then it's behavior clearly depends on the structure of the function g. Should f take g as an argument in order to be pure?
No, f doesn't have to take g as an argument.  Wikipedia's definition is a bit informal.  Also informally, the behavior of a pure function is also allowed to depend on the code of the program.  Or, to put it another way, the code of the program is considered fixed, not something we vary, so we don't try to track dependences on it.

So, something like f(x) = 2*g(x) is fine: if g is pure, f will be too.