How come different SFP modules work with different vendors only?
It's actually the other way around. SFP modules have no logic to see where they are used. Network devices may check compatibility and frequently do so, with many vendors deliberately overdoing it.
SFP modules contain a small serial EEPROM that stores a standardized structure to describe the module - (fiber) type, wavelengths, reach, vendor, SKU, serial number, manufacturing date, ... There's additional room for vendor-specific data. The structure is standardized in INF-8074i clause B.4 (slightly modified from the earlier GBIC standard and common to a wide range of interface module types).
That data is commonly used to accept or reject generic modules in many devices. This isn't a design flaw, just a decision that a device vendor takes for compatibility and monetary(!) reasons. Technically, there's little point in doing so for standard modules. There's only a handful of actual optical module manufacturers anyway, nearly all vendors use OEM.
Some devices simply don't care what you insert and accept anything. Others can be configured to ignore the SFP type/vendor, reducing your vendor support. Yet others reject 'alien' modules in general, forcing you to buy compatible ones - either official ones by the vendor (sometimes very pricey) or third-party modules flagged as compatible. There are even module vendors that let you field configure the SFPs you buy from them - very handy if you don't like stocking a module zoo.
Unfortunately, we cannot recommend any vendor here due to site policy.
Personally, I have very often chosen to buy multiple compatible modules (for spares or redundancy) instead of a single 'original' one. In a project, the price difference may become negligible, but bought seperately I've seen the 'original' part being marked up more than fifty times the price of a quality 'compatible' part.