Ah, you can spawn/despawn entire rooms in Unity. That of course helps and also allows some things to be done easier than the original Antichamber way (having native portals and enabling/disabling them at will).
Was rather curious as I was the one implementing the portal mechanics into DarkPlaces Quake engine + Xonotic and it was a lot harder there - well, none of these primitives were there though (except some existing engine code for rendering a scene in the same map to a texture which was used for water reflections). E.g. dynamically spawning entire rooms including objects is not possible even today, and the hacks that would allow sort of similar things are extremely slow as they would lose precomputed visibility information.
How I did it in the combination of DP + Xonotic was twofold: in DP I just provided "cameras" where game code can set the view origin of the camera, and in Xonotic I made all the other primitives (e.g. collision) aware of the portals.
In my game AAAAXY (which is 2D and thus I had no even remotely portal-capable engines available, but created my own) I went with a different way, to ensure portals have no glitches whatsoever; that way is however rather incompatible with multiplayer and thus I cannot generally recommend it. I basically decided to support portals in the tile loader itself and nowhere else, meaning everything else, including player movement, distance computations, tracing etc. work precisely the same whether portals are in the way or not. This approach may be applicable to 3D games as well, although as you describe portal tech in 3D is not particularly hard anyway, ESPECIALLY if given the primitives "Camera" and "copying rooms together" (in fact, with just copying rooms together and without cameras, you could already do portals the AAAAXY way and it will all be one render pass, although it may be slow to add/remove room parts at runtime and doing it like that everywhere also puts some annoying constraints).
While doing this, I also had the issue that third person portals are even more broken in general, as the typical way done in 3D engines only works for a first person view. To some extent this can be worked around, of course. What I ended up doing was introducing the same visibility mechanism as you know it from 3D games but applied to 2D - so anything the player cannot see is just black. Personally I got the idea from Among Us, but I must highlight https://alxwest.itch.io/kitakombs which discovered and released this tech independently on Itch before I finished my game.