Change modifier_sameTopology() to not not treat Nonconstructive modifiers as having same topology. This function is only used to test whether Apply as Shape is allowed. The exact nature of "nonconstructive" modifiers is not documented, but current list is remesh, fluidsim, decimate, mask, build, and boolean. All of these modify topology, and should not be making making shape keys.