Ok I think I got to the bottom of the problem with Recount. The problem in fact appears to lie with Recount's methodology to flag sword spec procs, and Sword Spec works exactly as explained by Aldriana, at least for autoattacks that were my focus.
I did my own testing as well with two swords:
[Razorscale Talon] and
[Crystalblade of the Draenei]. I autoattacked boss-level dummy for slightly less than an hour and in that time observed 3006 melee swings and 99 sword spec procs as categorized by Recount. The main hand hit for about 240-380 and the low level and faster offhand hit for about 60-80, so it was easy to distinguish the hits. There were some glancing hits, but no crit because I was below 4.8% crit reduction.
Same as in the wow forum thread, I observed that Sword Spec proc damage ranged from 66 to 388, indicating that both mainhand and offhand damage was classified as sword spec (see the
screenshot of Recount).
Next I looked at the
combatlog, and found three cases where Recount incorrectly identified regular offhand attacks as Sword Spec procs.
But before that I matched Recount's numbers. They seem to follow the method suggested by Vulajin in his analysis: they treat the first line after "Sword Specialization" as the attack that procced it, and the next line as the damage of the proc itself. They do not however, investigate the timing between mainhand and offhand swings to determine which swing falls out of line. This method normally provides correct identification, but in rare cases when a scheduled OH attack occurs at the same time as a schedule MH attack, it can happen that wrong damage is classified as sword spec.
Consider for instance these lines from the combatlog:

00:13:14.468 SWING_DAMAGE 0x0280000000137335 Mavanas 0x511 0xF1300079AA0018E1 Heroic Training Dummy 0x10a28 61 0 1 0 0 0 nil 1 nil
00:13:15.093 SWING_DAMAGE 0x0280000000137335 Mavanas 0x511 0xF1300079AA0018E1 Heroic Training Dummy 0x10a28 238 0 1 0 0 0 nil 1 nil
00:13:15.968 SWING_DAMAGE 0x0280000000137335 Mavanas 0x511 0xF1300079AA0018E1 Heroic Training Dummy 0x10a28 49 0 1 0 0 0 nil 1 nil
00:13:17.171 SPELL_AURA_REFRESH 0x0280000000137335 Mavanas 0x511 0xF1300079AA0018E1 Heroic Training Dummy 0x10a28 51585 Blade Twisting 0x1 DEBUFF
00:13:17.500 SPELL_EXTRA_ATTACKS 0x0280000000137335 Mavanas 0x511 0x0280000000137335 Mavanas 0x511 16459 Sword Specialization 0x1 1
00:13:17.500 SWING_DAMAGE 0x0280000000137335 Mavanas 0x511 0xF1300079AA0018E1 Heroic Training Dummy 0x10a28 346 0 1 0 0 0 nil nil nil
00:13:17.500 SWING_DAMAGE 0x0280000000137335 Mavanas 0x511 0xF1300079AA0018E1 Heroic Training Dummy 0x10a28 77 0 1 0 0 0 nil nil nil
00:13:17.515 SWING_DAMAGE 0x0280000000137335 Mavanas 0x511 0xF1300079AA0018E1 Heroic Training Dummy 0x10a28 388 0 1 0 0 0 nil nil nil
00:13:18.390 SPELL_AURA_REFRESH 0x0280000000137335 Mavanas 0x511 0xF1300079AA0018E1 Heroic Training Dummy 0x10a28 51585 Blade Twisting 0x1 DEBUFF
00:13:18.390 SPELL_AURA_REFRESH 0x0280000000137335 Mavanas 0x511 0xF1300079AA0018E1 Heroic Training Dummy 0x10a28 51585 Blade Twisting 0x1 DEBUFF
00:13:19.000 SWING_DAMAGE 0x0280000000137335 Mavanas 0x511 0xF1300079AA0018E1 Heroic Training Dummy 0x10a28 61 0 1 0 0 0 nil nil nil
-3.032 OH attack
-2.407 MH attack
-1.532 OH attack
0 Sword spec indicator
0 MH attack
0 OH attack <= flagged by Recount following their methodology
0.015 MH attack <= actual sword spec proc
1.5 OH attack
The expected time between attacks is around 2.35 between mainhand attacks and 1.45 between offhand attacks. If you look at it closely, then the offhand attack that appears two lines below the sword spec is 1.5 seconds after the previous attack. And the sword spec damage is actually on the third line below the sword spec announcement, it occurs 0.015 seconds after the previous mainhand attack.
I am sure something similar happened to the guy on wow forums who tested this before.
P.S. I used this
excel file to match recount's methodology and identify all incorrectly flagged sword spec procs.