For multiplayer, fine. put cheat detection, require Battle.NET, whatever. If I am playing with other people I want to feel that the games are fair. But don't restrict what I can do on single player. If what I do in single player impacts multiplayer so much that it requires these kind of measures, then that is just plain bad game design. Also, until I have broadband internet access everywhere I take my laptop, constant internet requirements are going to guarantee I will not buy the game.
There's one caveat to this argument - for Blizzard game developers, it would take more time to create a single player mode*.
The game is currently developed as a client/server relationship - the Diablo 3 client intentionally doesn't have everything needed to play the game*. This is in contrast to it's predecessor, which had a very weak client/server relationship (and it's why in Diablo 2 there are dozens of map hacks and other cheats that function on Battle.net)
So sure, they could create a single player mode mode that cannot log into Battle.net that doesn't have this relationship. But it would require a lot more effort for a subset of their audience. Like Starcraft 2, I bet they decided it wasn't worth the extra development. I also bet they didn't expect such an outcry, especially since Starcraft 2 already set their precedent.
*Note - pure speculation. I have no sources. I'm just a Diablo 2 player and software developer.