This is getting to be a bit of a problem in some cases and almost completely ignore-able in others. The problem is that if an attack is supposed to apply a status effect (either a self-buff or a debuff on an enemy) when it hits this does not happen if the attack deals 0 damage (such as if the enemy has a Stoneskin effect up).
Now I understand that this is probably done this way so that enemies that are Invulnerable can't have debuffs applied to them. However, it is a large problem for a specific class: pugilists.
A pugilist can't use 2/3 of the attacks available to them if they don't gain the buff corresponding to their different styles. If they can't cycle through their combination they aren't able to gain stacks of Greased Lightning, or apply the bonuses from Twin Snakes or the slow from Haymaker. This means that against an enemy that is taking 0 damage, a pugilist can do very little other than just hit the button for Bootshine over and over and over and over and over again.
What's more, because debuffs aren't applied when attacks do 0 damage the Monk ability 'One Ilm Punch' that is supposed to remove a beneficial effect from the target cannot remove stoneskin because it does not deal damage if stoneskin is up, and if it does enough damage to break through stoneskin it wouldn't be removing it with the on-hit effect anyway.
Usually this isn't much of an issue, against normal enemies stoneskin will usually only block 1-2 attacks before failing. However because stoneskin blocks damage equal to 10% of the target's max HP, higher HP targets (ex: FATE bosses) can be completely invulnerable to damage for minutes at a time if there are few enough players doing the FATE.
(Specifically, the giant Golden Fleece boss that spawns in Eastern Thanalan is a huge problem for pugilists trying to complete that FATE in a small group, though the Coerthas bosses in the Lightning FATE events also put up a stoneskin effect which would have caused similar problems if not for the overcrowding around the higher level Lightning FATEs.)
There must be a better way to code invulnerability than to prevent players who are hitting a target from stacking their own self-buffs because they are applied as on-hit effects. As it stands, an attack that deals 0 damage is coded to function the same as a miss, and therefore you cannot build combinations off of it.