Re: The simple answer was responsibility.
It depends how you put a cost on that. For example, if my little desktop app* uses 53 MB of RAM when I know full well that, with a few days of effort I could make it run in 29 and, with a few weeks, 8, what is the actual cost to users? It's really easy to do that calculation incorrectly: I'm using 45 MB extra, let's say I have 10k users, I'm wasting 450 GB of RAM, which at the current costs of RAM according to the first search result means $3,600 in RAM. If my few weeks cost less than that, I should use them optimizing.
This is wrong because the extra usage only matters while the program is running and, when my program isn't taking up the 45 MB, they still have it to spare. As desktop users, they likely have plenty of RAM unused, meaning that they won't notice whether I optimized that or not. That depends whether I expect my users to be using typical desktops or laptops with 8+ GB of RAM or low-end Raspberry Pis with 512 MB, so if there are a lot of Raspberry Pis involved, I should spend more time on it. This is why optimization has to be tailored to the environment you're running in. Shaving off a little RAM usage can be an absolute requirement in an embedded system, very cost-effective in a multi-user server system, and unnoticeable on a desktop, depending on how much is being used altogether and how much can be optimized out. Optimizing when it isn't needed can spend a lot of valuable dev time on something that doesn't benefit users.
* Actual example of something I'm writing, numbers approximate. There are some low-end Pis involved, so I am going to optimize it a bit. It would be possible to optimize it far more than I'm going to, though, and I'm not going to bother because the environment doesn't need it and the users of this will prefer the features I could build with the same time.