Как удалить объект через функцию?
var kill = function(obj) { // delete the object - does not work
  delete obj;
}
вызов kill(obj); удаляет объект, который находится в контексте самой функции проще говоря происходит примерно такое:
есть var a = { ... };
kill(a) /* obj = a; delete obj */ другими словами удаляет клонаvar kill2 = function(obj) { // replace with an empty object - does not work
  obj = {};
}
здесь объект очищается а не удаляется
вопрос, чем встроенная функция не угодила? что должно происходить? просто delete a;
а если через функцию:function kill_obj (obj) {
detele window[obj];
}

kill_obj('str_name');
В JS объекты не удаляются вручную, этим занимается сборщик мусора.
Если требуется удалить все перечисляемые свойства из объекта, смотрите ответ от MNB