equery changes its output by isatty()

I've got confused when trying to see output of equery depgraph. It turns off verbose flag if its output piped to another process.

When executing it without piping output, the output is formatted as tree-view and contains informations regarding USE flags.

$ equery depgraph xen-tools-4.3.1-r5
 * Searching for xen-tools4.3.1-r5 ...

 * dependency graph for app-emulation/xen-tools-4.3.1-r5
 `--  app-emulation/xen-tools-4.3.1-r5  [missing keyword] 
   `--  dev-libs/lzo-2.06  (dev-libs/lzo) x86 
   `--  dev-libs/glib-2.38.2-r1  (dev-libs/glib) x86 
   `--  dev-libs/yajl-2.0.3  (dev-libs/yajl) x86 
   `--  dev-libs/libgcrypt-1.5.3  (dev-libs/libgcrypt) x86 
   `--  dev-python/lxml-3.3.0  (dev-python/lxml) x86  [python_targets_python2_6(-)? python_targets_python2_7(-)? python_single_target_python2_6(+)? python_single_target_python2_7(+)?]
   `--  dev-python/pypam-0.5.0-r2  (dev-python/pypam) x86  [python_targets_python2_6(-)? python_targets_python2_7(-)? python_single_target_python2_6(+)? python_single_target_python2_7(+)?]

...

But when executing it with piping output, the output is flattened and less informations.

$ equery depgraph xen-tools-4.3.1-r5 | head 

app-emulation/xen-tools-4.3.1-r5:
 [  0]  app-emulation/xen-tools-4.3.1-r5
 [  1]  dev-libs/lzo-2.06
 [  1]  dev-libs/glib-2.38.2-r1
 [  1]  dev-libs/yajl-2.0.3
 [  1]  dev-libs/libgcrypt-1.5.3
 [  1]  dev-python/lxml-3.3.0
 [  1]  dev-python/pypam-0.5.0-r2
 [  1]  sys-libs/zlib-1.2.8-r1

You can see the actual impl at here.

I don't understand why they doing this kind of switcing ...