I think I understand one of your misgivings about (b). One could fairly say it has inverted word order. Here are some analogous sentences:
A man who repaired furnaces booked a flight to Arizona to spend an entire week exploring the Grand Canyon.
A man booked a flight to Arizona to spend an entire week exploring the Grand Canyon who repaired furnaces.
The second sentence is weird. By the time you reach “who”, you think all the details describing the man have been stated, so it seems too late to introduce a relative pronoun to refer to him. “Who” can’t refer to the Grand Canyon—it can only refer to the man—so the sentence is grammatically correct, but “who” comes as a jolt.
In (b), though, the “than” clause comes early enough that there’s no confusion. Also, the inverted sentence order with “A comparative X predicate than subject has” is fairly well established. But you could break it by making the predicate very long or not related to the comparison:
A better striker was eating dinner than we have.
That’s disorienting. Maybe there's a context where it would sound clear and natural, but ordinarily it should be:
A better striker than we have was eating dinner.
These are also correct:
A better striker than the one we have was playing for them.
A better striker was playing for them than the one we have.
Omitting the object of “have” is so common and well-established in comparisons that people parse these without difficulty. “That’s nicer silverware than we have.” “It’s a faster car than you’ve got.”
A variation and an explanation
You could word it even more simply like this:
A better striker than ours was playing for them.
but I find this so confusing as to be ungrammatical:
A better striker was playing for them than ours.
The mind seeks a comparison somewhere in “playing for them”, tries to mate “ours” with “them”, gets disoriented, and never recovers.
I think this makes most clear what is going on in all of these examples. To understand the sentence, the mind tries to match it up with various patterns, of which some are more salient than others. When some new element comes late in the sentence, the mind scrambles to find something earlier in the sentence to fit the structure, favoring the most recent words. If recent words appear to be very likely candidates for a match but actually fail, the mind abandons them, but by then it’s too late to recover, even if words from far earlier in the sentence make a perfect match.
The word “than” strongly commands certain familiar structures, so it has a lot of power to drown out alternative structures. One of those familiar structures is “Xer than object”, as in “faster than him”. This doesn’t match anything in (b). Another is “Xer than subject verb”, as in “faster than he runs”. This doesn’t quite match anything in (b). But those two patterns blur together into another familiar pattern, “an object Xer than subject has”, which does match. Since “than” has a lot of power, this structure can overcome the opposition of the inversion in (b), but it’s not strong enough to overcome all inversions, as some of the examples show. On top of all that, “an Xer object verb than subject has” is itself a familiar sentence pattern, but only when the verb and the comparison are obviously related.
So, no strict rules here, just various familiar patterns and conflicts between them. Sometimes the conflicts can get resolved easily and sometimes not. What makes a person able to do this is familiarity with the patterns resulting from long, repeated usage, not explicit declarative knowledge of those patterns.