My interpretation of the spatial pooler is that it acts like a kind of filter bank that applies something akin to a convolution on the input data. Each mini-column is effectively looking for a sufficiently matched feature (extracting a coefficient for a learned basis function). The accuracy of the match determines the degree of activation with the most active mini-columns being selected by the k-winners filter.
By this interpretation, it should be possible to reconstruct the salient parts of the input by linear combination of the filters (basis functions) associated with the activated mini-columns. Although it may be necessary to use duplication of filters (i.e. multiple mini-columns responding to similar filters) as a proxy for the original basis function coefficient extracted from the data. The learned basis functions (filters) do not have to be orthogonal, and indeed they should not be in order for this approach / interpretation to retain the semantics of the input.
As for why the SP uses Hebbian learning rather than one-shot learning, I believe @sheiser1 is correct. You want the learned filters to be more stable and to accurately reflect the cumulative statistics of the input data. If you dedicated a mini-column to every novel pattern that appeared on the input stream, then you would likely run out of storage capacity very rapidly and also loose some of the semantics of the input by not effectively grouping similar input patterns under a common set of previously learned filters.