How can random array access be considered $O(1)$ if bits must be stored in space and light travels at finite speed? Bits are usually stored linearly in space. We can say, thus, that the length of a memory chip, for example, is linearly proportional to the number of bits it can hold. Since signals must travel at finite speed in our universe, the time it takes to read the last element an array will always be proportional to the length of the array. Am I missing something?
When we talk about "running time" of algorithms, we don't mean literally time in seconds but number of operations in some abstracted machine model. In such a model, accessing a memory cell is taken to be a single operation, taking unit time.

Note that this is hiding much more significant details of real computers than the speed of light across a chip.  Whether or not the required data is in the cache will have a much more significant effect than any consideration based on the speed of light.