Hi @frankl. Thanks for your prompt response. Patch is working fine for me, and deleting reasons issue has been fixed.
Regarding the 4 default reasons (Faulty, Damaged, Incorrect Item and Warranty) not being listed, I have found entries in DB are being setup for language_id = 1 only. As my store uses other default language_id value I was unable to get them listed. While not a bug itself, a suggestion here would be to setup default reasons DB entries for every language_id in the system or listing entries for all languages in the system, showing blanks for those not defined.
for ($i = 0, $n = sizeof($languages); $i < $n; $i++) {
// juicy code here...
}