Nan c'est pas ça. Reprenons : quand tu écris un document qui a des frames, le document HTML qui déclare les frames doit avoir une référence à la DTD Frameset.
Ensuite, les documents HTML qui définissent les frames proprement dites, doivent être déclarés avec une DTD transitionnal ou strict et c'est cette dernière qui ne connait pas "target".
La DTD Frameset ne sert que pour le document HTML qui définit les frames pas pour les frames elle-mêmes. Or c'est dans les frames qu'on a besoin de target.
PS: bon en fait la DTD Frameset connait l'attribut "target" mais c'est par ce qu'elle est basée sur la DTD transitionnal avec en plus les tags <frameset> <frame> et <noframes>. Un document HTML qui définit un frameset peut contenir un <body>, c'est pour les navigateurs qui ne reconnaissent pas les frames.