Если ты хочешь удалять и ф-цию и ссылку на нее, не используй function declaration, делай так:
foo=function (){}
alert(delete foo)
// true
вторые 2 способа фактически равноценны, 3-й способ имеет смысла, ты там вместо одного объекта функции ложешь в память другой объект, хрен нахрен меняешь.