I think that if you have 2 codes (LAMMPS + FOO) that each
work with MPI, then you need to build one executable with a single MPI
linked to it. Especially if they both make the same syntax of MPI calls.
At least that's the only thing I've ever done.
I don't know what it means for a program (FOO) to "come with its own MPI".
MPI is just an API, so an MPI-compatible code should be able to link
with any MPI that meets the standard. If you mean MPI 2.0 vs 1.2, then
LAMMPS will work fine with 2.0 as well as 1.2, though it only uses routines