(b) That's wrong. Sometimes, a party to a contract makes no effort to perform at all, and this obviously amounts to non-performance. In other cases, the defaulting party appears willing to perform, but the performance tendered is something essentially different from what the contract required. Such situations are treated as equivalent to a complete failure to perform.
In this example, there has been a complete failure by B to perform. B's offer of a substitute (the cake flour or grade 2 bread flour) does not affect this conclusion. When a promise has been made to supply a particular thing, or type of thing, then that is what must be delivered. It will not suffice to make available something that is in a different class or category from that which was promised.