To avoid a lack of updates forneeded to fix software bugsissues, let's require that the scales model is either (1) currently in production, (2) supported by a manufacturer's software for their whole range of models or (3) supported by a third-party, open source software that is ideally in current development.
Within these requirements, I found:
Beurer diagnostic bathroom scales with the orange "beurer connect" logo (14 models). These all work with the Beurer Health Manager app (Android / iOS), for which "the full range of functions can be used locally without registering" (source). In addition, the Beurer BF700 / 710 / 800 models are supported by openScale, an open source app for smart scales.
At least in 2014, these were the only off-the-shelf bathroom scales that do not require cloud storage (source), and so far I am not aware that this changed for the better.
openScale supported scales. This includes the Beurer BF700 / 710 / 800 models from above, 23 other commercial models, and a generic hack to transform any scales with LCD into a supported smart scales.
Withings Body, previously Nokia Body. This is a wifi connected scale talking unencrypted JSON, at least in the original model from 2010 to at least 2013. This hopefully still applies (but I can't yet confirm), and hopefully also applies to the Withings Body+ and Cardio models.
There are instructions here and here (including small applications) to modify it so it talks to your own server rather than the manufacturer's servers in the cloud. That own server could be for example a Raspberry Pi in your local home network, making the scales independent of an Internet connection.
While the wifi connection is easier to work with than Bluetooth when developing your own software, the wifi solution involves DNS bending which is a "dirty hack" that you might not like.