

By “modern” do you mean “the late 90s”? HTTP 1.1 was adopted in '97 and allowed for the host header. NAT and port forwarding have been around since '94 - 2000ish.
Many services worked on any ports at the time as well. SMTP and DNS are probably the only ones that were (and remain) difficult to run on non-standard ports.
You got the basic idea from other posters, but there’s also a lot of weird crap in there as well.
Basically you only need multiple IPs when dealing with services that only really operate on “well known ports”. DNS and SMTP being the usual culprits. For most home users there this is no big deal - even if you wanted to host those services it’s unlikely that you would need more than one ip to do so. HTTP solved this in '97 with HTTP/1.1 which allowed for host headers, which let’s a single server host multiple sites.
This isn’t something new that nginx solved. 😂