> why use them?
Because its the only way to implement login without requiring JavaScript.
Cookies aren't inherently bad. There are some quirks, specifically the SameSite attribute. I eventually settled on two cookies, one SameSite strict and one SameSite lax. Both HTTP Only (not exposed to js) and both having a server side session token.
That way I can allow 3rd party referrer links to be logged in for specific actions ( click link in webmail to confirm email address ) while staying secure against 3rd party request forgery vectors in general.