First, one can define a flow as unidirectional or bidirectional. While TCP traffic always is connection oriented and therefore always must be bidirectional, it still often exhibits strong asymmetries in the traffic profile of the two directions. Each TCP flow from A to B also generates a reverse flow from B to A, at the very least for small acknowledgment packets.
For data aggregation, we may or may not be interested in measuring those two flows separately, therefore measurement and analysis applications should ideally be configurable in regard to this parameter .
In the Internet environment is is possible to use a unidirectional definition of flows, i.e., bidirectional traffic between A and B is to be seen as two separate flows: traffic from A to B, and traffic from B to A. This allows to get interesting insights for the analysis of routing issues or traffic characteristics. The aggregation of those two flows into one unidirectional flow could on the other hand be sufficient for accounting. Obviously it makes sense to allow the unidirectional defintion, since a later transformation of unidirectional flows into a bidirectional flow is always possible.