Indeed, a small $0.23 mcu may have its own internal RC oscillator, or even a MEMS based resonator on a PLL. =3
Microcontrollers obviously have more than 1 bit of memory + 2x analog comparators + one 33% / 66% voltage divider (which is all a 555 timer truly is).
What is surprising however is how flexible 1 bit of memory + 2x analog comparators + one 33% / 66% voltage divider
What matters in production is that a 555-based circuit will use more power, that it's four components to source and install instead of one, and so on. Don't get me wrong, I like the 555, just like I like vacuum tubes, but it's nearly as dead.
For example, switch debouncer could be solved in code, resistor+capacitor or other methods. But you know what's one of the best performing switch debouncers?
1-bit of memory with an analog comparator. Aka: a 555 Timer.
> 555 is useless without multiple extra parts
Not needed for bistable multi vibrator (aka: just a flip flop mode). Which happens to be the debouncer circuit.
The ATMega needs about ten components to get properly operational for programming vs a simple 555 timer circuit. Oh, and then you also need the programmer and toolchain for making the code.
Or you can just use some basic math and thrown down native hardware to do the job. One of the biggest off-road lighting manufacturers on the planet does exactly this with 555 timers.
I manufacture lighting controls of various sorts as my current profession.
You can add the 555 Timer to an already completed design if it is later discovered that debouncing was an unsolved problem.
I don't think it is always appropriate to assume that code can be rewritten (or rearchitected) to fit your needs. Sometimes its easier to solve problems with a touch of extra external hardware.