Modularity and separation of concerns can extend into other domains than software.
For me, it seems so much simpler to keep the two separate. You won't be forced to wash the heating element every time you wash the cup. Can't heat a different cup while the other is in the dishwasher, unless all your cups are self-heating. Normally, the only way for a cup to break is if it shatters, but with an inbuilt heater there's electronics that can break too. And should the cup shatter, now the heater is unusable too, or vice versa.
The microwave in my house is built into the oven.
This provides absolutely zero advantages to the oven or to the microwave. It does cause a lot of stupid, easily foreseeable problems:
- There's only one control panel, and if the oven is currently active, some of the microwave controls get disabled.
- The microwave is awful in various ways -- regardless of whether the oven is active -- which wouldn't ordinarily be a problem, because microwaves are very cheap. But...
- It's impossible to replace the microwave, a $50 device, without simultaneously replacing the oven, a $2000 device.
Exactly!
I have to have a kettle for other purpose (including heating water for other mugs than mine), and no self-heating mug is going to be as efficient as a kettle to heat water.
Furthermore, I also put cold or room temperature liquids in my mug. With a self-heating one, I would be carrying the heating parts for absolutely no reason.
Same goes for a TV. By keeping things separated, I can decide what I do which each device and manage their lifecycle separately. If the device reading video files is included in the TV, I can't plug it to another TV or a projector or even take it with me to use it elsewhere. While I've upgraded three times my video playing device to follow tech evolution, I've kept the same TV to plug them in.