this is a quite longish post, thus the most important point right at the beginning, in a nutshell: there's no reason why moving stuff should be exactly the same as deconstructing something, then constructing something. by making the game aware of something just being moved to another place, other instances of deconstructing can be restricted and dealt with much better. also, some types of griefing are very easy to detect and should not require a player to initiate a kick-vote (which is something that can be abused and is often turned off anyways).
now for the details, in all their rambling glory: moving stuff (as opposed to deconstructing for good) should be a non-issue, as it's trivial to solve. here is one way to do it: for genuine deconstruction, have a separate key, or use a double-tap of the decon key, something like that. now when you use the decon key as usual, the building isn't deconstructed yet, it is just marked for moving. its potentially free build points are displayed separate from the usual build points, or builders just get a message, such as "<player> marked a <structure> for moving". for the builder who initiated the moving, the timer ticks down as usual, as if he/she deconstructed already. as soon as a building of the same type is constructed somewhere else, the original one is removed as usual, as if deconstructed. in order to prevent exploitation of that feature, the new structure will start with as many health points as the original one had. bonus feature: you can mark, say, a turret for moving and then construct a tesla generator; this works as long as the additional 4 build points are in the ordinary build point pool. so the turret is transformed into the tesla, and of course you can't transform a turret into a telenode or a hive into an egg. only buildings of the same general type.
with such a mechanism in place, deconstructing can be restricted, while moving is as easy as ever. no multiple players required (but permitted) to take part in it, no voting, no hassle. deconstructing reactor/overmind can be totally prohibited, as this is only needed as part of moving.
however, all of this is moot if FF is on and players can just trash their own buildings. i have a suggestion for that. this is all still assuming that *moving* is as easy and unrestricted as ever. it is important to be able to kick/ban griefers and lamers. whenever a vote is initiated, typically half of the players don't know the reason. this has bad consequences. current version clients are sometimes buggy and the vote does not refer to the intended player (or the initiator of the vote just hit the wrong line in the GUI). still, people vote YES, without knowing why, and innocents are kicked, while the griefer is still there.
this can easily be improved when it's about harming your own team: people get "minus-points" for that. deconstructing a turret/acid tube, or destroying one, or killing a team-mate all get you one boo-boo-point. spawns are worth two points, reactor/overmind four points (defense computer 3 or 4). when a player gets four points within 10 minutes, the server *automatically* initiates a kick-vote and also tells players the *reason*. so if someone deconstructed with consent from his/her teammates, they'll just vote no and no kick happens. but if it was maliciously, they can kick him out. another kick-reason that is easy to detect is spamming. i would suggest that unlike the normal kick-voting, this special kind can _not_ be turned off by admins of pub servers.
i also have ideas about how to restrict construction to proven/trusted builders, but as far as deconstructing is concerned, i think those ideas are pretty worthless, as you can still trash your own buildings with firepower if only FF is on, and i think FF should be on ^_^. however, i think the auto-vote for kicking griefers would be easy to implement and very hard to exploit. the base-moving system would not be as trivial to implement, so it's debatable whether the effort would pay off. however, i think it's obvious that it is better than other proposed solutions. it doesn't require players who are in the middle of a fight to concern themselves with votes about stuff going on potentially somewhere else entirely and it doesn't require two or more builders.
there is an alternative that is much simpler to implement, but restricted to one and the same builder doing the deconstructing and constructing when moving something: just implement the boo-boo-point system, with this minor addition: if i decon something, i am burdened with the appropriate amount of minus-points, but in case this would trigger a vote, the system waits a minute. if i rebuild a structure of the same type within a minute, the boo-boo-points are removed again. this is really simplistic and could be exploited in horrible ways ... still it might be better than nothing.