The distribution with which mixins are selected is something done by wallet software, the protocol is unaffected by this. Whether or not you use a gamma distribution over the mixins age doesn’t matter to the protocol, as long as you reference at least seven mixins (one of which is of course the true input).
Along the same lines, concerning my above example of Carol creating a transaction at the same time as Alice, referencing at least one identical input as Alice: Since Alice can in fact spend her output at that time (block 27), it is also a valid mixin for Carol. Whether or not currently existing wallet software picks up on transactions that _just_ became available I do not know. But for the protocol, that doesn’t matter, since there’s no telling who of the two used it as a mixin only.
This also means that the claim that you can’t broadcast a transaction sharing any input with ones currently in the mempool is highly unlikely. If it were true, I can sketch a very straight-forward DoS that I have never heard of before: Imagine I want to prevent a given output from ever being spent. I create a transaction referencing this output as a mixin. As soon as that «blocking» transaction is confirmed, I create another such transaction. And so on. Since you can spend your outputs at any time, your claim cannot be true. (I’d be glad to be enlightened if such a DoS is in fact possible.)
Apart from all this, we’re taking the discussion way off-topic again.