rlang - Quasiquotation Confusion

I’ve been trying to wrap my head around Programming with dplyr. This post describes what I perceive to be a disconnect between the documentation and the source code of the rlang package. I think understanding this disconnect may help me understand how rlang works under the hood.

First let’s take a look at the documentation:

##      Quasiquotation is the combination of quoting an expression while
##      allowing immediate evaluation (unquoting) of part of that
##      expression. We provide both syntactic operators and functional
##      forms for unquoting.
## 
##         • 'UQ()' and the '!!' operator unquote their argument. It gets
##           evaluated immediately in the surrounding context.
## 
##         • 'UQE()' is like 'UQ()' but retrieves the expression of
##           quosureish objects. It is a shortcut for '!! get_expr(x)'.
##           Use this with care: it is potentially unsafe to discard the
##           environment of the quosure.

Now let’s look at the source code for UQ(), !!, and UQE():

library(rlang)

UQ
## function (x) 
## {
##     x
## }
## <bytecode: 0x7fe329231c60>
## <environment: namespace:rlang>
`!!`
## function (x) 
## {
##     if (is_quosureish(x)) {
##         get_expr(x)
##     }
##     else {
##         x
##     }
## }
## <bytecode: 0x7fe32924c2a0>
## <environment: namespace:rlang>
UQE
## function (x) 
## {
##     if (is_quosureish(x)) {
##         get_expr(x)
##     }
##     else {
##         x
##     }
## }
## <bytecode: 0x7fe328ee4b08>
## <environment: namespace:rlang>

It’s weird to me that the !! operator is identical to the UQE() function and not identical to the UQ() function. I’m not the only one confused by this, check out this GitHub issue.

Here’s my question, where in the rlang source should I be looking to understand how the !! operator is evaluated in a quoting context?

PS I’m not posting this question on Stack Overflow because it’s more of a discussion question than a programming question.