Sí hay una pequeña diferencia, almenos que yo haya encontrado...
Ejemplo:
Código PHP:
Ver original<?php
$var="0";
if ($var == "") { echo "hola"; }
else echo "adiós";
if (empty($var)) { echo "hola2";} else echo "adiós2";
?>
En este caso, tomará como falso lo primero pero verdadero lo segundo.
Saludos