Если посмотреть в исходник блэйд-компилятора, то видно, что актуальность кэша проверяется по времени изменения файла (не его хэшу)
public function isExpired($path)
{
// ...
return $this->files->lastModified($path) >=
$this->files->lastModified($compiled);
}
public function lastModified($path)
{
return filemtime($path);
}
И тогда можно сделать вывод, что ваш FTP клиент не изменяет время модификации файла при его загрузке. Точнее говоря, он предотвращает изменение этой метки (устанавливает исходную).
В шторме для этого есть опция "Preserve files timestamp" в разделе
File | Settings | Build, Execution, Deployment | Deployment | Options
небольшой секретикВ любой непонятной ситуации – читай исходники. Там намного больше инфы, чем в документациях. =)