You are right. you knows it well
I never checked what the forwarder dol is doing (I'm not the one who compiled it). I always assumed it was the boot.dol of the forwarder v5.1 that we are injecting into a channel.
It makes more sense to provide that forwarder's compiled dol as it's part of the sources.
But AHB is not something which can be disabled from a program, it's a flag in the tmd of a launched title (disc, or channel), or by some unknown hack (HBC booting). I don't know how Prii0.8 is getting it.
The only way that forwarder.dol can disable the protection is by launching the installed forwarder channel instead of being the forwarder code to load the loader. But I can't imagine previous developers releasing a dol to load a channel to load the loader.
I could test on vWii! I don't have the forwarder installed, so if it doesn't boot the loader it means it's trying to launch the channel.
it if boots the loader, then I don't know how AHB access is provided.
Once AHB access is available (AHBPROT disabled), USBLoader can keep that access right when reloading to another IOS.
so if you boot from HBC (which provides AHB access), or from the forwarder, the loader keeps AHB enabled for the launched homebrew : nintendont, Wiimc, emulators, etc.
It does it automatically, regardless of which IOS you use (58 or cIOS), as long as HBC or forwarder provided it, it keeps it.
If you boot from priiloader 0.7 with cIOS, like you said you already have NAND/ES/USB access patched so it doesn't rely on AHB to access these devices, but it can't (or shouldn't) provide AHB to launched homebrew when reloading to IOS58.
Maybe I'm not understanding it correctly?
Before I add IOS58 support for the loader, it already had functions to reload IOS keeping rights. Maybe it's only keeping the NAND or USB rights but doesn't set the AHB flag? so nintendont which checks only the flag to know if it has USB access is failing while it could access usb without AHB due to cIOS rights passed to 58?
But the code works by disabling Mem2 prot before reloading the IOS, which I think requires AHB? so maybe cIOS have ahb access? if that's the case, loading cIOS first and reloading to 58 should work to launch any homebrew with AHB access.
That still doesn't explain why Priiloader0.8 stopped working nor why 0.7 works with the forwarder dol.
Someone will have to explain to me, because I never understood where AHB come from when launching the forwarder.dol without the channel.