This presumes that the speculative transmission doesn't have
preemption, which is a prerequisite.
There is a list of prerequisites for source anticipation, which
are completely different from those conventionally used for
(receiver-side prefetching). These were worked out as part of
my dissertation research, and precede the web itself.
direct requests preempt speculative responses
both at the server and at the client
direct requests and responses preempt speculative packets
in the network - i.e., this is why you need
red-flagged ABR ATM packets, or some sort of
similar flag in integrated-services IP. It doesn't
work at all with current IP.
cache hits are forwarded to the server presender
so that the server presender can update
its speculation set
speculative responses are dropped if
no bandwidth in the net
server busy with other direct requests or responses
client cache is full (drop at the cache)
Note - the server rules imply that cache updates
arrive on a different IP port than direct requests,
and that the cache loads come on different IP ports
than direct responses.
Using these rules avoids the mistake you observe with the proposal
in HTTP-NG - using the same port requires a RTT to preempt a connection
and enable a direct response.
That can be easily avoided.