We do not need to know if a previous output is confirmed, or if there are multiple spenders of an output, when we validate. If we have the prevout (just in the store for any reason) we validate. Spentness and maturity are determined in a completely decoupled step, which is just a query. That confirmability step is the most strongly ordered, and download is the least strongly ordered.