They do more damage to elite armour because that's what it's programmed to do against those target types.
Take small arms for instance. They are direct fired and either hit or miss the target they are firing at. They cannot scatter and hit another target. This also means they cannot friendly fire. Then take tank shells and infantry AT weapons etc. They are direct fire and either hit or miss the target they are fired at. If they miss, they scatter and hit a random ground location based on the scatter attributes. Any entity within the AoE of the weapon will then be individually "targeted" and their armour taken into account to determine damage. Flamers, arty and grenades do not target individual men when fired. They fire immediately at the ground where an enemy happens to be, taking into account scatter. Any target within the AoE is then "targeted" and the armour taken into account to process damage.
Because smoke does not affect scatter and only affects the accuracy of the weapon, which decides a hit or miss roll, indirect fire weapons are not affected by smoke. At least, this is what I believe happens. Perhaps small arms do scatter, but since they don't have an AoE, they can only generate a hit or miss based on passing through a target hitbox which smoke still protects them from. Also, you still can't generate a "hit" against friendly units.