[Magisk] Fif_:
I have OOS 11 on a OnePlus 7 Pro, and I was running into the same problem.

In fact, debloating apps from /system/system_ext worked, but not from /system/product/app, /system/product/priv-app nor /system/reserve.

After a bit of investigation:

The module (Terminal Debloater) is not at fault, it creates the right directories and replace files.

It seems like Magisk is having issues with overlay mounts.

More explanations: with OOS 11, OnePlus is using overlayfs to combine multiple directories into one. Running on the device:

# mount | grep overlay
overlay on /system/etc/buildinfo type overlay (ro,context=u:object_r:system_file:s0,relatime,lowerdir=/odm/etc/buildinfo:/system/etc/buildinfo)
overlay on /system/product/app type overlay (ro,context=u:object_r:system_file:s0,relatime,lowerdir=/system/india/app:/product/app)
overlay on /system/product/priv-app type overlay (ro,context=u:object_r:system_file:s0,relatime,lowerdir=/system/india/priv-app:/product/priv-app)
overlay on /system/reserve type overlay (ro,context=u:object_r:system_file:s0,relatime,lowerdir=/system/india/reserve:/system/reserve)

This means that:

/system/etc/buildinfo will be a virtual (overlay) directory merging the contents from /odm/etc/buildinfo and /system/etc/buildinfo. This one is irrelevant, but:

/system/product/app will be a virtual overlay directory merging the contents of /system/india/app and /product/app.

/system/product/priv-app will be a virtual overlay directory merging the contents of /system/india/priv-app and /product/priv-app.

/system/reserve will be a virtual overlay directory merging the contents of /system/india/reserve and /system/reserve.

On my device (GM1917, OP7Pro international version), all the /system/india subdirectories are empty. But it's enough to mess up Magisk. Probably because these overlay mounts are triggered late in the boot stage (I've verified that they are not mounted yet in postfs-data).

So the real fix will be with a new Magisk release.

Note that I've tried creating a Magisk overlay.d (nothing to do with overlay mounts discussed here) module to disable the overlay mounts which are performed on this device by /vendor/etc/init/hw/init.target.rc. The overlay mounts are not needed since /system/india is empty. However that didn't work, and I'm not sure if Magisk can deal with init.rc files outside of the root directory... I'm not familiar with Magisk overlay.d...

But, here's a work-around:

If I debloat normally, then copy the debloated structure from the second overlay merge directory to the first (in /system/india), then debloating actually works!

What I mean is that let's say that I want to debloat FooApp from /system/product/priv-app:

Run debloat normally for that app.

That creates a /data/adb/modules/terminal_debloater/system/product/priv-app/FooApp directory containing a .replace file.

From the mount information above, we can tell that /system/product/priv-app is actually a overlay merge of /system/india/priv-app (first) and /product/priv-app (second).

With a root shell on the device:

Create the /data/adb/modules/terminal_debloater/system/india/priv-app directory:

mkdir -p /data/adb/modules/terminal_debloater/system/india/priv-app

Copy the freshly created FooApp directory there:

cp -r /data/adb/modules/terminal_debloater/system/product/priv-app/FooApp /data/adb/modules/terminal_debloater/system/india/priv-app

Reboot

Enjoy your freshly debloated device!

After reboot the FooApp will be gone.

For some reason, the apk is still visible under /system/product/priv-app/FooApp, but Android cannot "see" it and it's really gone.

The Android mount structure is really nasty and is getting worse with every release.

Hopefully @topjohnwu can figure this out and make a permanent fix.

Apologies for the long message, I hope it's worth it ;)