According to the Codex:
wp_enqueue_scripts() links a script file to the generated page at the
right time according to the script dependencies, if the script has not
been already included and if all the dependencies have been
registered. You could either link a script with a handle previously
registered using the wp_register_script() function, or provide this
function with all the parameters necessary to link a script. This is
So we can say it's none but a good practice.
As per the WordPress theme reviewers,
wp_enqueue_scripts() is recommended, or may be mandatory, because one of the reviewer, reviewed my theme, said:
Themes are required to enqueue all stylesheets and scripts, using
wp_enqueue_script(), and hooked into an appropriate hook via callback function, rather than hard-coding stylesheet/script links or tags in the template.
But after all, all your confusions related to the enqueue scripting will be vanished after reading:
- The Ins and Outs of The Enqueue Script For WordPress Themes and Plugins
But quoting the main reasons here for a quick look:
Why Do We Use The Enqueue Function?