Some models require different baud rates (e.g. https://github.com/SwiCago/HeatPump/pull/158).
Some heatpump models (don't) support different traits so it's useful to be able to override these directly in the config file.
Since v1.18.0 esphome supports external components which allow you to use custom components much more easily. https://esphome.io/components/external_components.html