Specifically, that top-level forms in a do are compiled separately. Consider:
```
(ns example1)
(when true
(require '[clojure.set :as set])
(set/difference #{1} #{2}))
```
and
```
(ns example2)
(do
(require '[clojure.set :as set])
(set/difference #{1} #{2}))
```
The namespace `example2` compiles and runs fine, because `do` fully evaluates each of its forms sequentially. The namespace `example1` fails, because the compiler tries to resolve the symbol `set/difference` before the `require` form has been evaluated.
There is a difference in behaviour there that is not necessarily intuitive. One can argue that the observed behaviour is consistent with existing documentation, but since it's not called out, it is unclear whether this is intended behaviour and can be relied upon moving forward.