En realidad amigo una consulta que tiene un WHERE IDTabla1 = IDTabla2 para generar el conjunto de datos resultante si no es capaz de trabajar con los índices, y no cuenta con un analizador bien aceitado, deberá hacer (y lo hacen) un producto cartesiano, o "todos vs todos" y luego aplicar el filtro correspondiente a la evaluación.
Los JOINs justamente se han pensado para no generar esta carga pesada y ofrecer un medio natural, y congruente al álgebra relacional y a la teoría de conjunto misma, si tener que hacer dobles vueltas sobre el conjunto original.
Repito, que no por hacer un WHERE IDTabla1 = IDTabla2 vamos a tener un JOIN implícito. Parecerá a nuestra vista que es un JOIN pero que en realidad no lo es. Aunque hay motores que a la consultas con ese "JOIN implícito" la alteran internamente para que sea realmente un JOIN, pero es de mucha importancia recalcar que NO TODOS LOS MOTORES HACEN ESTO... No al menos en las primeras versiones.
Y lo digo por conocimiento de causa. En mi trabajo como DBA estaba acostumbrado a hacer SQL con encuentros implícitos en MS SQL Server (aunque no recuerdo cual versión) y obtenía algunos resultados que me llamaban la atención por la cantidad. Cuando le pedía que hiciera un JOIN me quedaba en claro: había diferencias en la cantidad de registros devueltos y eso me delató de que NO SON LO MISMO.
LEFT, RIGHT, OUTER son casos especiales de encuentro. Éstos permiten determinar como tratar el conjunto de cada miembro y en especial en que hacer con los nulos cuando aparecen. Esto de los nulos es otro de los aspectos claves que hay que considerar cuando se va a utilizar encuentros. Una operación WHERE IDTabla1 = IDTabla2 puede derivar a que se trate de una forma diferente a los nulos que si se emplea un JOIN. A su vez cada motor decide que hacer con esto y en que orden presentarlos.
Firebird por ejemplo ha variado desde 1.5 a 2.x en como presentar los nulos en una ordenación, explícita e implícita. Por ello incorporó la posibilidad de indicar NULL FIRST y/o NULL LAST.
Ejecútese en diferentes motores consultas con LEFT y/o RIGHT sobre tablas que tengas campos en nulos en sus IDs y observen como los ordenan...
Las diferencias que tu señalas amigo no necesariamente son como táles. El que existe esas extensiones al JOIN no los hace diferentes.
Repito e insisto: ni son equivalentes, ni son iguales, ni son diferentes... todo dependerá de las consistencias que tengamos en nuestras tablas, del motor elegido (y cuanto inteligente sea). Lo cierto es que cada una está pensada para sus cosas. Y si se obtienen diferencias o semejanzas... ¡son producto de casualidad!
Saludos,