I've found a janky workaround using ForceBindIP.
.\ForceBindIP64.exe 192.168.128.1 .\LibreWolf\librewolf.exe -profile Profiles\Default
This bypasses Librewolf Portable entirely, launching the browser executable itself and manually specifying the profile path so that we don't leave a trace in the AppData folder and actually make the data "portable".
For this to actually work, you have to go in about:config
and set browser.launcherProcess.enabled
to false
so that ForceBindIP actually binds.
Support for this could definitely be implemented within the Portable launcher, but I'm not putting my hopes up.