What could go wrong if I am not using
die(); after the function that handles an Ajax request?
I have noticed that almost all the WordPress Ajax-based code is using it.
If you do not
die, execution will continue and might generate extra output which might break whatever information you are trying to send from the server to the browser. Strictly speaking, you might not need to
die, but there is very little point in taking the risk.
In more general terms, WordPress Ajax shows its age and the lack of experience working with Ajax when it was designed. You should use the WordPress JSON routes instead, as they can have a better URL structure, and the programming structure is more logical and modular.
WordPress should not require this and it suggests poor coding practices.
When you make an Ajax request, the requested URL should generate a response with the data required (and also set the correct headers to say what type of data it is, e.g. JSON). Nothing else should be provided in the response except the required output.