Entendamos un par de conceptos sobre el JOIN:
1) Cuando se trata de JOIN implícitos, MySQL automáticamente
realiza un matching entre campos de ambas tablas que tengan el mismo nombre. Esto puede hacer que el join se realice entre campos que teniendo igual nombre, tengan datos diferentes.
Esto obviamente no es lo esperable y los resultado erroneos pueden ser muchos.
2) Un INNER JOIN implica que MySQL devuelva aquellos registros que efectivamente cumplan con lo que se indica en cada uno de los ON. Es decir, si al menos uno de los tres INNER JOIN no se cumple, ese registro no será devuelto bajo ninguna circunstancia.
En tu caso eso significa que todo empleado debe estar relacionado con un área, que cada empleado debe tener un puesto, y que cada empelado debe tener un nivel de acceso declarado.
Cualquiera de los datos que sea opcional, donde el empleado no esté relacionado, y ese empleado no existirá en la tabla devuelta.
Todo esto se puede validar sin problemas, por ejemplo:
Si alguna de estas devuelve datos, ese registro no saldrá en tu consulta principal.
No hay otra alternativa.
Por cierto, el uso de JOIN implícito tal como lo planteaste puede generar un producto cartesiano entre registros no relacionados. Ese es uno de los peores escenarios de consulta, porque es pura basura.