Por ahora, son sinónimos.
VARCHAR
está reservado por Oracle
para admitir la distinción entre NULL
y cadena vacía en el futuro, como ANSI
prescribe el estándar.
VARCHAR2
no distingue entre un NULL
y cadena vacía, y nunca lo hará.
Si confía en una cadena vacía y NULL
siendo lo mismo, deberías usar VARCHAR2
.