I'm not sure why thorns have 'is_floor 1' set. My initial thought is that it might have had something to do with the slow movement for it, but I looked at the code, and it doesn't have to be a floor for slow movement to work. My guess is then that the thorns object that wall of thorns is using is the general thorns object, which was meant as a floor object (just as the trees have is_floor set). So it works fine if the map maker is putting them down, as the map maker is obviously not intending them to go away. What should perhaps be done is a new thorns object get made up that is not a floor, and that get used for the spell. As an enhancement, it could also be given the right material type for wood, so it could also get burned down (although, not positive on that - I'm not sure if no_pick objects may be immune to that type of effect)