Разница между возвращаемым значением выражения PHP и переменной

Почему это имеет значение, если переданное значение функции (переменная) передано, а не переменная напрямую? В документации PHP для функции empty () указано, что

5.5.0: empty () теперь поддерживает выражения, а не только переменные.

Но почему это все равно изменит ситуацию? Если данное выражение имеет переменную как возвращаемое значение – в моих глазах – оба утверждения будут точно такими же.

До PHP 5.5 возвращаемое значение является значением , а не переменной, потому что, когда вы говорите

return $value; 

в вашей вызываемой функции значение $ действует только в области функции; он перестает существовать как переменная, как только функция завершает свое выполнение, поэтому вызывающий код получает только значение