You're wrong. Where sense define custom JPATH_BASE in custom defines.php? Then, if move plugins/modules/etc dir, site will be broken and joomla update process not will be worked correctly. Also .css and .js from many plugins and modules, whatever, load from root "/" url.
Custom JPATH_BASE in custom defines.php - ok... If you copy /includes/defines.php to /defines.php and not defined _JDEFINES requires in index.php, then defines.php will be included twice an get error. Why define redundant _JDEFINES constant and make error, when you can just use "if(){}else{}" construction? when defines.php must be once included in any case!
Also read this:
Constants — Joomla! Documentation
https://docs.joomla.org/Constants
"... These constants are defined in path/includes/defines.php except JPATH_BASE which is defined in path/index.php"
JPATH_BASE must be defined in "path/index.php".