Confusión entre niveles de factor y etiquetas de factor

Parece haber una diferencia entre los niveles y las etiquetas de un factor en R. Hasta ahora, siempre pensé que los niveles eran el nombre "real" de los niveles de factor, y las etiquetas eran los nombres utilizados para la salida (como tablas y gráficos). ) Obviamente, este no es el caso, como muestra el siguiente ejemplo:

df <- data.frame(v=c(1,2,3),f=c('a','b','c'))
str(df)
'data.frame':   3 obs. of  2 variables:
 $ v: num  1 2 3
 $ f: Factor w/ 3 levels "a","b","c": 1 2 3

df$f <- factor(df$f, levels=c('a','b','c'),
  labels=c('Treatment A: XYZ','Treatment B: YZX','Treatment C: ZYX'))
levels(df$f)
[1] "Treatment A: XYZ" "Treatment B: YZX" "Treatment C: ZYX"

Pensé que los niveles ('a', 'b', 'c') aún se podían acceder de alguna manera al crear scripts, pero esto no funciona:

> df$f=='a'
[1] FALSE FALSE FALSE

Pero esto sí:

> df$f=='Treatment A: XYZ' 
[1]  TRUE FALSE FALSE

Entonces, mi pregunta consta de dos partes:

¿Cuál es la diferencia entre niveles y etiquetas?

Es posible tener diferentes nombres para los niveles de factor para la secuencia de comandos y la salida?

Fondo: para secuencias de comandos más largas, la secuencia de comandos con niveles de factor cortos parece ser mucho más fácil. Sin embargo, para informes y gráficos, estos niveles de factor cortos pueden no ser adecuados y deben reemplazarse con nombres precisos.