The docstrings of both `assoc!` and `conj!` say "Returns coll.", suggesting the transient edit happens always in-place, `coll` being the first argument.
However, the fact that the following example omits the key `8` in its result proves that in-place edits aren't always the case:
Instead, programmers should be guided towards using constructs like `reduce` with transients:
The easiest way to achieve this is by changing the docstrings of (at least) `conj!` and `assoc!` to not read "Returns coll." but instead tell that the change is destructive.