When a form field is deleted, any existing tickets made prior to that deletion should still have that form field with the response available and visible.
Majority of the time, we are making changes to forms to prepare for future scaling and changes, such as removing our code-based dynamic fields and using the option to create them using the GUI. However, we are unable to make these changes because it affects ALL existing tickets by removing the form fields and responses from that ticket, so we potentially lose valuable/required context to complete that ticket.
It is not ideal to have 100% of all tickets related to a service item closed before we make changes. Not only that, but we lose any historical data on any tickets already closed as well.
We definitely understand the necessity here, let me have this discussed with the Product team and see if we can provide you a solid solution around this.
For the meantime, I would suggest you to clone the existing service item and disable the old one so the newer tickets will contain the new forms, and for Incidents, rather than deleting the ticket field you could rename it instead and hide it using using our default Apps under Marketplace.
I understand this may not be a perfect solution but this is a best practice that we would suggest, as when a field is deleted in the instance it is removed from Database too.