BMesh recommended usage?

I’ve read this and am wondering about which data representation should be preferably used for modifiers.

Should we migrate existing modifiers to use bmesh? Or should new modifiers be based on bmesh (preferably and if possible)?

What is the recommended strategy about that?

BMesh is ideal for modifiers that perform destructive edits.

eg: bisect/boolean/bevel/wireframe.

OTOH if you’re only deforming, it’s overkill.

Since there are common uses that only deform (armature + subsurf) for eg, using bmesh everywhere won’t work well for us.