IMHO, no application process should EVER specify (NEW, KEEP). I know SMS will "forgive" you and catalog the dataset anyway, but i believe the better practice is to specify (NEW,CATLG).
On systems that do not use SMS (yup, there still are some), the same dataset can be propogated across all of the devices in the UNIT specified. At one client when someone asked for help as to why they could not allocate a dataset, i looked at their vtocs and found the same dataset "all over the place". . .