The "tags" feature of Emacs includes the command tags-query-replace which performs a query-replace across all the files mentioned in the TAGS file. See `Tags:Tags Search' in the online manual.
In addition, Martin Boyer has written a package named global-replace which will perform a query-replace across all the files mentioned in the
anonymous FTP:
/ireq-robot.hydro.qc.ca:pub/emacs/lisp/compile.el.Z /ireq-robot.hydro.qc.ca:pub/emacs/lisp/global-replace.el.Z /ireq-robot.hydro.qc.ca:pub/emacs/lisp/query.el.Z