I actually tried writing a SNES-wrapper several years ago, then I found that I really didn't have any need for it at all.
It would only be possible to use with a PETSc matrix (and OOFEM's PETSc linear solver-wrapper wouldn't be used at all, it would be handled internally from the SNES-call).
However, I didn't think it was even worth including. OOFEM already supports a fair selection of options for nonlinear problems, and newton solvers are really quite simple to write. I had a look at SNES, and there seem to be a couple of features that we currently don't offer, but I've never really had the need for more than a trivial modified NR-solver.
Also, things like checking convergence with DOF-grouping etc. wouldn't be supported.
But you basically just have to overload SparseNonLinearSystemNM::solve and make a few wrapper functions for the NR-callbacks, and that's about it.
If we could make use of the smoothing to get proper multigrid support that would be an awesome feature. (But realistically, I think algebraic smoothing of the assembled matrices aren't going to cut it (to expensive as a preconditioner), we need mesh-multigrid, which needs a lot more OOFEM-code).