(setq f (getdist "\nScale Factor: "))
(getdist) will always return positive real number, so to prevent entering 0.0, you need (initget 2), and to prevent entering ENTER - nil value, you need (initget 1)...
So instead of :
(initget 6)
(setq f (getdist "\nScale Factor: "))
I would suggest :
(initget 3)
(setq f (getdist "\nScale Factor: "))
And what if "INSERT" contains "INSERT" entities... I suppose child "INSERT" entities will be scaled, and then child entities of child "INSERT" will be scaled... Shouldn't you operate only on parent "INSERT" entities?