https://en.cppreference.com/w/cpp/named_req/RandomAccessIter...
they were conceived for c++'98 and transmogrified to a trait for c++20
the run time in GPs lower_bound link is log(n) for random access iterators and liner for non-random access.
But how does that change my observation about the differences in the two APIs?