This is just an unofficial and incomplete list of clients that either have an odd or expect a certain non-default behaviour.
If you are a developer of a named project and feel responsible for it, feel free to contact me either via mail or in #subtle on freenode.
Logisim opens a splash screen and expects that it gets mapped immediately, otherwise it just freezes. Also it just unmaps the splash screen without destroying it.
GVim continuously sends configure requests whenever the window manager applies size hints from those requests. This effectively shrinks the window to its minimum size. Also some dialog windows like the screenshot dialog don't follow the project defaults for window names/roles.
Picard WM_CLASS property just consists of empty strings.
MPlayer doesn't react on _NET_WM_STATE_FULLSCREEN when set by the window manager, therefore it doesn't resize the internal movie window and the aspect ratio is broken.
GIMP expects that the splash is mapped immediately, otherwise it waits until the window manager finally maps it.
Mail-notification hides its tray icon and only maps it on a certain events.
Krusader opens dialog windows non-transient with the _NET_WM_WINDOW_TYPE_NORMAL window type.
Flash windows usually have a bogus WM_NAME/WM_CLASS, which doesn't match the launching browser's. To make things even worse, this differs between each browser. (see FAQ#20)
GIMP uses inconsistent naming schemes for dialog windows. See feature request here.
Firefox doesn't include the name of the selected profile in any window property. See feature request here.
A fallback is to use the --class argument to set WM_CLASS to a specific value and use it for tagging. See here
LibreOffice uses confusing values for WM_CLASS and no values for WM_ROLE properties. See feature request here.