For what kind of data are hash table operations O(1)?
Hash table lookup can always be $O(1)$ for static sets, see the 2002 paper by Arne Andersson and Mikkel Thorup: Dynamic ordered sets with exponential search trees


  Firstly, we give the ﬁrst deterministic polynomial-time (in n)
  algorithm for constructing a linear space static dictionary with $O(1)$
  worst-case access cost (cf. perfect hashing). As mentioned earlier, a
  linear space data structure that supports member queries (neighbor
  queries are not supported) in constant time can be constructed at a
  worst-case cost $O (n^2 W)$ without division [30]. We show that the
  dependency of word size can be removed.


In the general case, Andersson et al provide an algorithm for hash-indexed data structures that support lookups and updates in $O(\sqrt{\log n / \log \log n})$. Furthermore, they prove that this bound is optimal. So we know exactly how close we can get to $O(1)$ in the general case.