Gli header messi sulla pagina html non hanno nessun effetto sull'immagine, che è un file a parte.
Quando richiami un'immagine da filesystem php non interviene, quindi è un po' dura spiegargli di non metterla in cache... dovresti farla scaricare con un file php apposito che se la va a prendere dal filesystem e poi la spedisce preceduta dagli header. Così FORSE funzionerebbe... ma il trucco del parametro fasullo è sicuramente più rapido ed efficace.