p0nd had subsequently disagreed with you about the constant internet connection, and you disagreed right back in the post I quoted. The idea I mean to get across is the fact that it's NOT the constant internet connection that prevents and allows them to fix cheats. To prevent cheats, you need good game design and implementation. To fix them, you need good feedback (gained passively or actively) from the players and/or testers...and a good game design to work with.
Some good game design aspects to help fight the types of exploits we're discussing include protecting the interfaces available for (1) item creation and players obtaining them, (2) item trading, and (3) item/character data storage. Also, only storing item/character data on company servers rather than client PCs isn't such a bad idea (D2's used client and server, so this was one of its major problems). You simply do not require clients to be always connected in order to accomplish these things. It helps, definitely, because it facilitates good feedback, but it's not hardly required. I'd bet money they could release a dupe-free game without the always-online.
This is one case where we each have different opinions about the subject and there is no way to test or prove them. However, history is on my side. Diablo 1 didn't require active internet connection, dupes galore. Diablo 2 didn't require active internet connection, dupes galore. WoW requires active internet connection, very very few dupes and any that actually did occur were probably rolled back.
Further, I simply don't agree with your statement "To prevent cheats, you need good game design and implementation." Programmers are people, and modern computer games are incredibly complex. It's inevitable that there will be some flaws or bugs which can be exploited. If you do not require always-online play, if you have 1 single exploitable flaw, it will ruin the game forever. You can never fix it, because the cheaters simply won't apply the fix or patch you release. On the other hand, if your game does require being online, any flaw discovered can be patched, and the game client can be forced to patch before play begins, and further any ill-gotten gains from an exploit can be reversed through a character rollback. It's really a world of difference.
I get chiropteran's point but who cares if someone in duping items or "hacking" in offline? how does that affect other players?
In an online-only game, critical parts of the game engine can reside on blizzards servers. For example, the item generation code. This can make it much harder to hack. However, if an 100% offline mode is available, it means the entire game needs to be run from the users machine, which takes away any control blizzard has.
Hypothetically, blizzard could work extra hard and release 2 different versions of the game, one which runs on the user's machine for offline-only mode and another version with portions that run on blizzard's server, but I see a couple reasons why they don't. For one, not worth the effort- minimal gains for a lot of extra work. For another, by giving players the complete package on one side, it could be easier for hackers to dismantle it and use it to emulate blizzard's servers.
It also destroys the achievement system. Either you disable the achievements in offline mode, which leads to tons of forum drama "haha you noob you haven't even beat act 1" "no, I beat the game, but I did it offline so the achievement doesn't show". Or you allow offline achievements to count, which degrades the whole system given there would no way to confirm how legit the offline achievements actually are. Or you create 2 different sets of achievements for each mode, again more work for blizzard for minimal gain.