tomastheswede you ask some good questions.
I manage an ISP in North Idaho. I’ve got 1k-Plus fiber customers and another 1k-Plus wireless customers ( using Mikrotik routers ).
Originally , 20+ years ago , I use Live IP address to customers ( 16 Class C networks ). Although this worked , my networks were always under constant never-ending probes and network attacks from the Internet. If/when I configured my core routers to also firewall these Internet probes to my customers , the result was a high CPU firewall load on my core equipment and slightly slower throughput.
Then later , I switched to NAT ( using A mikrotik vm CHR router ). This instantly dropped all of the Internet probes to my customers but it also created four problems. One was slower throughput to my customers and greater latency. Second was high CPU loads on my Proxmox and vm CHR routers. Third was when I received a notice about one of my NATted customers doing something bad - I had no way to cross reference who the customer was because I only had the outside NAT IP and port address to lookup. Fourth problem was some customers complained about things not working correctly. So NAT kinda worked but it did not work well in in ISP enviornment.
Then later I changed from a CHR Mikrotik NAT router to a CHR Mikrotik CGN-NAT router. Presto , things got better and faster - and now I was able cross reference outside IP addresses and ports to inside CGN-NAT customers. I ran this for years but my Proxmox vm Mikrotik CHR CGN-NAT router was getting CPU hammered big time.
So, then I tried VyOS and replaced my two vm Mikrotik CHR CGN-NAT routers with two VyOS routers that were configured to perform the exact same CGN-NAT functions to my customers. WOW !!! Every one of my CGN-NAT customers got a little faster and the latency to/from customers went way way down. All calls from CGN-NAT customers almost came to a complete silence - as in almost zip - nadda - everybody happy.
So , as a medium large ISP , I big time strongly suggest and recommend VyOS as an ISP CGN-NAT router(s).
In my environment , I have the following:
One VyOS CGN-NAT router for my wireless customes.
One VyOS CGN-NAT router for my Fiber/GPON customers.
Both/each VyOS router has the following conigurations:
- 8 Live IP addresses ( to each CGN-NAT router )
- I use 250 ports for/to each inside CGN-NAT customer.
Example:
IP-1 , ports 2000->2249 to 100.64.0.1
IP-1 , ports 2250->2499 to 100.64.0.2
… and continue in 250 blocks of ports.
Then continue to next Live IP address ports 2000->2249 and repeat again and continue adding more internal CGN-NAT IPs.
So as you can see , a single Live IP address can be used to give you an entire C block ( 255 IPs ) of CGN-NAT address space.
Eight Live IP address can be used to give you an entire /21 block of CGN-NAT address space.
EDIT - bonus - with CGN-NAT ( similar to the way I have mine configured ) , there is not need to —> log NAT , because it is easy/fast to cross-reference Live-IP address and port number to the inside CGN-NATted customer 
I myself use the Rolling release for my CGN-NAT routers , and BGP routers , and all core-NOC routers. It’s been stable and fast , and knowing what I know now - I would do it again 
North Idaho Tom Jones.