Other replies explained the why, though cgnat wouldn’t be a problem if you also had ipv6.
Luckily for me I have a regular ip4 address but if that ever changed I’d be out of luck unless my isp (quantum fibre) implemented a proper ipv6 solution.
That uses 6rd which is typically slow (since it basically proxies through an ipv4->6 bridge), and in my case it worked on their provided router but not with opnsense.
as someone who does publicly expose services that have auth, why does CGNAT make exposing ports publicly bad?