Or distribute ppu files for
release versions you want to support. This is a bit similar to bpl's which
are also always release dependent.
Some commercial parties already work like this:
E.g. TMS, AtoZed.
Have a look at
https://www.atozed.com/intraweb/how-to-install-intraweb-16-on-lazarus/ and see how they do it.
A bpl is after all nothing more than a collection of dcu's with some rtl support.
PPU versions for
defined releases and platform work also without the sourcecode (except interfaces for it)
Another option - for Windows only - is to write ActiveX controls for which you only need to provide a type library. That makes your code also language independent: will also work in C++ etc..
E.g. I used to write ActiveX controls using the Delphi 7 wizard and those can be used in FPC/Lazarus too.
Haven't done so for many - 20+ - years, though, but it included a commercial charting component.