Why was default of innodb_file_per_table changed?
The default value has been ON, since 5.6.6.

You're looking at the 5.5 documentation, which only refers to the defaults in 5.5 -- not 5.7.  In version 5.5.7, a decision was made to revert the defaults to match 5.1 in an effort to avoid a replication incompatibility.


  the default values for innodb_file_per_table and innodb_file_format are reverted to the MySQL 5.1 default values—that is, OFF and Antelope, respectively. (Bug #56318, Bug #11763590)
  
  https://dev.mysql.com/doc/relnotes/mysql/5.5/en/news-5-5-7.html


In 5.6.6 (before 5.6 GA) the default value changed back to ON.


  The motivation for these changes is to provide better out-of-box performance and to reduce the need for database administrators to change settings manually. 
  
  https://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-6.html


In 5.7, the default is still ON.