This is definitely a valid question and also not easy to answer. One of the issue with elasticsearch and nosql in general is imho that it's hard to detect something that is missing because in order to do this you'd need to know what is supposed to be running. You would need a query which first retrieves all hosts where beat x/y should be running and then check if there is incoming data for all those beats. (same issue for other similar queries, for example try finding a host where a certain service is not existant)
Afaik relying on the beat monitoring functionality is not a good idea, because when a beat would be down for whatever reason, there is a chance there wouldn't be any monitoring data at all.. Theoretically you could create an alert for each hosts - beat separately and check if there is data, but this is not sustainable for 10000's of hosts?
I didn't have the chance to test the new Agent and Fleet yet. If designed correctly this could be a very interesting feature to integrate from the start. The moment an agent is enrolled, it should not dissapear from Fleet when there is no incoming data (like it is currently in Beats monitoring) and instead trigger some configured Kibana connector. Unenrolling should be a manual (or automated) action.