The shopping thing is people want the opportunity to buy the stuff they wanted out of the shop first, I think. But that's easily solved by not opening gates until you buy the things you want that day first.
Most visitors I've had are very polite though, and generally ask before they do a lot of things. They'll ask if they can visit main street or ask if they can explore the town. I have had a few that went and did it without asking, but again... I make sure my town is ready for visitors before I open my gates. I'm also kinda laid back about things. If people take some fruits, I don't really care. They grow back. If they take flowers or cut down trees, I don't care. I haven't done the landscaping I want to do yet anyway, so it's no loss. I don't leave items randomly lying around my town, so there's nothing to steal *but* flowers. I guess they could rip me off on trades/sales, but I haven't had that yet. Most people here seem nice and try to follow whatever was agreed upon.
If people really did something terrible, you could always hit the WiFi switch and nothing they did will be saved.
My favorite is "don't go inside houses!"
Yeah, I don't get that one either. You can't steal stuff from houses. I can only think of these possibilities:
1) Person's house is a mess and they're embarrassed by it.
2) Person has stuff they don't want you to know that they have. Maybe they have stuff in their house that, unless they were a TTer or traded with a TTer, it would make no sense for them to have. Best example I can think of is if someone has the whole set of zodiac items.
3) This is slightly less likely I think but... Person is trying to set up a certain room theme and are in the process of it. They don't want you stealing their idea. There's some people out there with some pretty unique rooms out there that would be hard to replicate unless you are blatantly copying (usually involves custom patterns and unique placements, like people who make chair mazes and such). People who are trying to participate in some room decorating contest could also fall in this.