>>50
A1. 単に auto としたときに参照になることはない。
  参照として受け取りたい場合は auto& にせねばならないというのは正しい。
A2. 参照かどうかで自動的に場合分けして欲しいなら decltype(auto) とすればいいが……
  参照で受けるのが正しい状況なのかどうかは状況による。
  テンプレート内など自動的な場合分けが必要な場合を除いては参照は参照として明示したほうがよくない?
  (個人的感想です。)
A3. いくつか用意されている operator<< の基本的なオーバーロードの内で bool にマッチするから。
  void* もあるのだけれど C++ では任意のポインタは void* へは暗黙の型変換されないのでマッチング候補にならない。
  アドレスとして解釈して欲しいなら void* へ明示的に型変換しないといけない。