The assumption "A computer can only process numbers smaller than say $2^{64}$" does not hold in the frame of asymptotic behavior computation. $n$ is considered unbounded and the algorithm runs on a theoretical computer with unlimited resources.
It is not the peculiar values of $f(n)$ that matter, but how the function grows with $n$.
If you take the finiteness of the representation into account, all algorithms are running in time $O(1)$, even the super-duper-exponential ones.
And in practice, an $O(1)$ algorithm can run much slower than a $O(\log(n))$ one.
May sound weird, but that's the way it is.
Final remark:
On modern machines, the access times to memory really depends on the number of elements. This effect has an effect much larger than $\log n$, so that relying too much on the idealized computer model is misleading.