I use find-file.el to switch between headers and implementations for C
and C++ code.
It seems like it would be a good idea for this to integrate with
project.el, so that if a project is set up, by default
ff-find-other-file will look in the project's directories for the
relevant file.

It sounds useful, at least for C/C++ programmers.

What would that command be called, though? And what generic function(s)
on projects will we need to add?

Ideally, this would help different kinds of projects, but if the
C/C++-specific command is easier to do by itself, that's okay too.

For instance, we already have project-roots, and all directories that
don't match project-ignores are considered to be inside the project.

So maybe do a search inside project-file-completion-table, for a file
name matching the current (but with swapped extension)?