This is what I have done myself, but also using SOC info too, it's not complex! ?? Have a Solis Inverter and Overkill BMS and an ESP32 based system that sends the BMS info to the Solis over CANBus. Using EVE LF280K charge vs. temperature recommendations (see attached) it just tells the Solis what charge current to use, based on cell temps and SOC info from the Overkill BMS. A few lines of code adjust the charge current per battery temp degree from 0 to 10 degrees with different mappings for 3 different SOC settings.It wouldn't be hard for an engineer designing a BMS to scale charge current with temperature and state of charge. Seems like it could be done in firmware. For example: 10A@-10°C, 15A@-5°C, 20A@0°C, 30A@5°C, 40A@10°C, 100A@20°C. This would allow them to better protect the battery from damage at cold temperatures. But I'm not sure if any of the manufacturers have figured that out yet or implemented it.
The good thing is that the BMS will just do its job and protect the cells if my code fails in an unlikely way (if it hangs, the CANbus messages will fail to be sent and the Solis stops using the battery anyway). And my battery heater should mean this code is rarely used.
Obviously you could just program your own charge vs SOC and temp mappings depending on your needs / battery type etc.