The heartbeat extension to the TLS protocol seems like a useful idea for DTLS; according to the specification itself, it can be used to find out if a peer is still alive (and prevent firewalls from dropping the connection) without a renegotiation and for path MTU discovery.
However, I don't understand the motivation for specifying and implementing it for regular, TCP-based TLS. Wouldn't sending empty application data fragments essentially solve the problem of stateful firewalls dropping idle connections as well?
The RFC for TLS explicitly allows that behavior:
Zero-length fragments of Application data MAY be sent as they are potentially useful as a traffic analysis countermeasure.