The reason this happens is that the target framework you're using (e.g. our runtime framework) supports implicit conversions for certain types, like short to int etc. (in general: numeric types) When this is the case, we don't change the type but keep the entity field type the same. This has been the choice since it was introduced in an earlier version. We mainly picked this as there's another option we had to prefer above changing the type: applying a type converter automatically. This is a setting which is enabled by default as adding a type converter is otherwise time consuming. Additionally, perhaps you'd want for this situation to use the implicit conversion (although decimal -> int might be a bit extreme, but e.g. going from short in the db to int is perfectly doable).
The downside of this choice of course is that when you do want to change the field type, it's up to you to do so. Adding a setting for this would conflict with the type converter assignment setting and as that's a setting that would take preference anyway, we didn't add a setting for this, and picked a side: when implicit numeric conversions are supported by the target framework (EF, ours) then it's left to the framework at runtime.
Example: if you change the int db field to a varchar(50), it'll change the field type as there's no implicit conversion possible. If you have a type conversion set with a type converter that can convert varchar values to int however, it'll not change the type to string but will assign the type converter.
I do admit though that this is kind of rigid and more flexibility might be needed, but introducing that has conflicts with other features and to me there's not a way to introduce a setting that's not conflicting with another setting (which then causes friction in that area ). Additionally, the current implementation works fine for the most part but if you move from an int to a decimal, it will change precision/scale of the field but not the type (precision/scale are ignored on int types anyway). I guess this is because going from an int like type to a decimal or other numeric type with a fraction/scale is the only situation this will occur and we missed that particular situation.
To correct the field, please change the field type in the entity editor to decimal.
What we can do to help in this situation is to add a warning in the sync log perhaps for this? Would that help you notice these changes better so you can manually correct them? A setting won't be added, but perhaps a warning in the sync log might help notify you that an implicit conversion is utilized so the type is kept the same but perhaps you don't want that and you have to manually correct it?