I'm going to start by going through some more detailed definitions of the various rule orderings, with examples:
If rule A creates the environment for rule B to apply, then rule A feeds rule B, e.g.
A: ɣ → ∅ / V_V
B: e → i / _e
/teɣe/
A: tee
B: tie
[tie]
If the order A B is a feeding order, then the order BA is a counterfeeding order, i.e. applying the rules in order BA would fail to feed, e.g.
/teɣe/
B: ----
A: tee
[tee]
Counterfeeding is opaque in the sense that the surface form violates the generalisation that [ee] sequences are generally altered via the raising rule (B).
If rule A destroys an environment that could have triggered rule B, then A bleeds B, e.g.
A: V → ∅ / VVC_
B: stop → fricative / V_V
/heidinir/
A: heidnir
B: ----
[heidnir]
If the order AB is a bleeding order, then order BA is a counterbleeding order. So, applying the rules in the order BA would fail to bleed:
/heidinir/
B: heiðinir
A: heiðnir
[heiðnir]
Counterbleeding is an opaque rule ordering: The surface form violates the generalisation that fricatives appear between vowels.
Now, onto your question:
Note that based on the definitions i've given, counterbleeding is not the same as feeding. In the feeding example, rule A creates the environment for rule B to apply - if rule A hadn't applied, then rule B couldn't apply. In the counterbleeding example, application of B simply does not prevent rule A from applying - even if rule B hadn't applied, rule A would still have been able to apply. Let's consider your concrete example in light of this. Let's say that X is a stop and Y is a fricative, and the environment in question is intervocalic, so:
"Let's say you have some segment X. Rule A and B may only apply to X. A applies first and changes X->Y. Next, B applies to Y but it is in vacuous application, so nothing happens. In this scenario A is said to bleed B."
A: stop → fricative / V_V
B: stop → [-voice] / V_V
We can see that in the order AB, application of A will bleed application of B. Exactly.
/ada/
A: aza
B: ----
[aza]
"Now let's say we have rule A and B, but this time let's just say A applies to X or Y. Now, when we apply rule B first. Let's say B changes X->Y , and next A applies to Y. If A had applied first, then it would have bleeded B. This seems to be a feeding relationship."
A: [-sonorant] → ∅ / V_V
B: stop → fricative / V_V
/ada/
A: aa
B: ----
[aa]
/ada/
B: aza
A: aa
[aa]
Because A applies the [-sonorant], it should affect both stops and fricatives. If we apply A first, it will destroy the environment that triggers B, so A bleeds B, therefore the order AB is a bleeding relationship, and the order BA is a counter-bleeding relationship. BA does not count as a feeding relationship, because A would have applied even if B had not applied, so although B does, in a sense, create the environment for A to apply to, B's application is not necessary to create the environment that A applies to.
A final note: In practice, since B is triggered by a set of environments that are a proper subset of the set of environments that trigger A, B will block application of A to stops due to the elsewhere principle. If this wasn't the case, then we wouldn't have any evidence for the existence of B in the first place!
Reference: Amalia Arvaniti's lecture slides for ACTL 2013.