The problem is this:
When looking at a network of pipes, it's important for many reasons to know the distance between each junction, regardless whether or not it is a tap or a tee junction.
Revit allows dimensioning/tagging and scheduling the length for junctions that use a tee, because it splits the pipe.
However, it has to be done manually to do the same thing for taps, because they do not break the pipe, and the pipe knows nothing about the length from a pipe beginning to a tap.
The way other MEP software handles this problem is to make outlets part of the pipe 'family', each tap or outlet makes a pipe segment with taps on it as a family component, then the taps have parameters like offset from one end of a pipe, and rotation angle, which can be modified later.
Most importantly, it allows creating tags all at once which show the offset length from all outlets on a pipe segment. In plan views, this is critical information for all kinds of things down the road.
In revit, pipe taps are free floating objects and very poorly implemented. In order to get the correct functionality, an API solution would have to be developed that iterated over all pipe taps and pipe segments, found interfering pipe IDs with tap ID's, did some geometry functions to figure out the offsets, and finally some functions to add the dimensions or tags.
Taps, as far as I know, are not frequently used for many trades (such as plumbing), but they are with fire protection, because we can have dozens of sprinklers or branch lines coming off a pipe segment. Using tees for this results in buying tons of fittings, when you can do it for a fraction of the price using welded taps/outlets. When you have hundreds of sprinklers and dozens of branch lines on a project, you can easily see how you would have to manually add hundreds if not thousands of manual dimensions just to make a drawing usable in Revit.