Tienes razón, siempre hay un contexto en algún sentido. No creo que puedas entender qué significa "contexto" en "sin contexto" sin entender una producción.
Una producción es una regla de sustitución. Dice que, para generar cadenas dentro del lenguaje, puede sustituir lo que está a la izquierda por lo que está a la derecha:
A -> xy
Esto significa que la secuencia abstracta A puede ser reemplazada por el carácter "x" seguido por el carácter "y". También puedes tener producciones más complejas:
zA -> xy
Esto significa que el carácter "z" seguido de la secuencia abstracta A puede ser reemplazado por los caracteres "x" e "y".
Una producción sin contexto simplemente significa que solo hay una cosa en el lado izquierdo. El primer ejemplo no tiene contexto, porque A puede ser reemplazado por "x" e "y" sin importar lo que ocurra antes o después. Sin embargo, en el segundo ejemplo, el carácter "z" tiene que aparecer antes de la A, y luego la combinación se puede reemplazar por "x" e "y", por lo que hay algún contexto involucrado.
Una gramática libre de contexto es solo una gramática con solo producciones libres de contexto.
El segundo ejemplo es en realidad un ejemplo de una producción sin restricciones. Hay otra categoría que está entre libre de contexto y sin restricciones llamada "sensible al contexto". Un ejemplo de producción sensible al contexto es:
zA -> zxy
La diferencia es que lo que viene antes de A (y después) en el lado izquierdo debe conservarse a la derecha. Esto efectivamente significa que solo A está sustituido, pero solo puede ser sustituido en el contexto apropiado.