The usage of modifiers is because the BGE uses the Blender animation system (since 2.62 I think). This requires to set up the modifier. It is a Blender concept rather than a BGE concept. The BGE needs armature parent.
Nevertheless this is static too. You can’t create this relationship while running the game.
An easy way to deal with this situation is to armature parent multiple different object to the same armature (e.g. skin, boots, shirt, hair and others). The object need to be mesh objects, but you can have zero vertex meshes. It is still static (constant number of objects). In practice you do not need a huge number of deformable mesh objects.
When you have an armature parented mesh object you can replace the mesh (e.g. via replace mesh actuator or via python). This allows you to see the mesh objects as “slots” rather then meshes. So you can replace one shirt with another without replacing the object. You replace the mesh only.