Yeah, that might be the optimal method for ethics to work - it's simple and allows for the most versatility. Easy to add or remove possible ethical reactions easily with minimal modding experience. Very simple to read, made even easier if it works on weighted values or ratios, as opposed to a cumulative percentage. Very tough to screw up, and it would probably be a rather simple matter for the game engine to handle, I'd assume.
The method I chose would be a pain in the neck, though it's possibly the simplest as far as vertical or horizontal scrolling are concerned. A non-modder, or anyone without an at-hand "cheat sheet" of the order of reaction levels, could easily create a race that doesn't work properly, if at all. Compact, but at a cost - confusion and many problems. Probably not many engine-related problems, as far as I can see.
The method Jaybud proposes, I don't really see that as working that well from a technical standpoint, unless the engine can handle a dynamic amount of values in a single bracket. I know it can handle "optional" values, such as equipment tokens in the entity files. These can have a "quality" value, and is not required to complete an entity. However, having a semi-random amount of fields might be a problem. I don't doubt its merit, though, it's certainly a simple matter of adding new values, simply add two values to an ethic field, but it might be outside of the engine's capabilities. If it would work, only Toady would really know the answer to that, it would definitely be a viable alternative to the current "static" method of doing it.