With "IDs" on forms you mean the field numbers, such as F11, F12 and so on?
These are not IDs but just reference numbers that update based off the order of elements in a form - that is why they increment when adding a field. They are there so you can select the right field from dropdowns and such. They have no relevance to backend functions as these only work with relations/attributes, not with fields.
Frontend functions can show field numbers, when you access fields for functions like set_value()
. But when used in frontend functions, the field numbers are only for display - in the background proper field IDs are used (you can click on 'preview' to see the field IDs). Moving fields around is completely supported and does not break frontend functions. If it does, there is a bug in the software.