Although that was the prevailing language at the time of publication. I think we can all agree that C++ and its ilk (ie Java) are shitty languages with stupid complexities and limitations.

Of the GOF, 3 of them were focused on C++. Only Ralph Johnson is a Smalltalk guy. A number of the patterns are pointless in Smalltalk as well. For instance iterator - the collections do their own iteration via #do, #select:,#collect:, #detect:, #inject:into:, etc.

OTOH, a couple are pretty much Smalltalk specific (flyweight for representing characters as objects for instance).

I do agree with you that a number of patterns are designed to work around language stupidities. Some of the examples are done in a lame C++ oriented way too. Visitor, which is better known in the smalltalk world as double dispatch, is essential for making arithmetic come out correctly, but the way its explained is as a way to work around lack of runtime type information in C++.

Have you read the Design Patterns Smalltalk Companion? I haven't but a friend says the examples are much better.