I've added the ability in my own configuration to use lambda functions that evaluate to a string as babel default header arguments, instead of just the plain strings currently allowed. Would anyone else be interested in this feature? Shall I prepare a patch?
There are a number of use cases for this, but to give you an idea, here's one I'm using myself. (setq org-babel-default-header-args:latex `((:file . (lambda () (concat "img/" (sha1 (org-element-property :value (org-element-at-point))) (by-backend '((html . "-html") (t . "-org"))) ".svg"))))) This computes a filename based on the hash of the block contents. Matt