He was not being an asshole; he told you the truth.
When your PC (or more likely - wifi router) boots up when connected to the cable modem, it asks the Comcast network for an IP address. That process/protocol is called DHCP. When Comcast receives your router's IP request, if it's a new device on the network, Comcast assigns you an unused IP from a large pool IPs. When it does this, it also creates a 'lease' record in its database that 'router Anthony' has been assigned IP 1.2.3.4 and that lease expires in XX hours. If you then power down or disconnect your router, as long as you reconnect before the lease expires, you'll be assigned the same IP address & the lease end time will be extended another XX hours. However, if you disconnect for longer than that, or even just past the lease expiration time, that IP lease record is wiped out from the database... "your" IP gets put back into the unused pool... and 'router Anthony' will be treated just like a new device again when you reconnect.
Most of us leave our wifi router running 24x7, so this allows your router periodically & continually re-up & extend the IP lease... giving you the perception that it is static and never changes. But if you have an extended power outage, or turn the router while on a week vaca, etc... yes, the lease will expire. Different ISPs also use different lease time allocations.. some shorter, some longer.
What's I've described above is dynamic IP service, which is the default service for all ISP connections unless they tell you otherwise. In the residential space, even more so. Yes, some ISPs allow you to pay a monthly uplift charge so that you have a static IP. In reality, it's the same thing I posted above... except that instead of the lease time being a few hours, they make it a few years. There are also true static IPs, but you'll probably never have to deal with that unless you work in IT on L3 networks.
So, TLDR - Comcast nor any other ISP is going guarantee you that you get a certain IP for any amount of time, unless they also offer static IP service for an upcharge. Theoretically, from their perspective, you aren't supposed to be running servers from your residential cable modem (TOS violation)... so you shouldn't need a static IP.
Tin already gave you one workaround... sign up for a Dynamic DNS service... and when you connect to your IP cameras remotely, instead of entering the Comcast IP, you'll use a domain name like anthonyscameras.ddns.org.... and the DDNS service will track what & when your router's IP changes, etc.