While I don't believe a framework at this level should be sending Expires headers, there is no reason it can't implement 304 support using either Etags or LastModified headers (or maybe even both).
For etags, I would suggest something fast like https://github.com/c9/vfs/blob/master/local/localfs.js#L30-32 instead of hashing the content of the file or some other expensive operation.