No - An array is a data structure that stores pre-calculated values in memory, whereas a function is executable logic that computes a result only when it is called.
Correct. But indexing into an array is logic that computes a result when it is called.
Not a semantic difference, just a performance difference ... and a function can cache for the same performance anyway.