Generally yes you need to make an effort in your custom components to generate the diff information. How hard this is to do depends on which version of the product.
In 5.6 the out of the box components use the cq:text tag which handles the the diff functionality. If you aren't using the cq:text tag then you have to handle the diff logic yourself.
In 5.6 for images the Image bean (com.day.cq.wcm.foundation.Image) will handle this as well (it adds a query string parameter like ?cq_diffTo=1.0).
In older versions of the project supporting diff is more complex - you write a lot of more scriptlet code or have to write your own tag library. There is a service that provides help to components for this - https://dev.day.com/docs/en/cq/current/javadoc/index.html?com/day/cq/commons/DiffService.html.