Why we use dependencies keyword in {theme}libraries.yml ? and not just include the file? in the {theme}.libraries.yml why we need to declare the jquery js or any other library as a depedency :
  js: 
    assets/lib/bootstrap-4.0.0-dist/js/bootstrap.js: {}
    assets/script.js: {}

 dependencies: 
     - core/jquery

an not just include it for example as a simple js, before all other js that depends on it :
  js:
    assets/jquery.js: {} # load dependency library before the dependent libraries.
    assets/lib/bootstrap-4.0.0-dist/js/bootstrap.js: {}
    assets/script.js: {}

in the 2nd scenario the js file ex: jquery will be loaded before the other js files.
so what is the difference?
A library is a set of files (CSS or JavaScript) which could be local or loaded from another site. Declaring a dependency from another library has the vantage of not requiring to know:

Which files need to be loaded
Where those files are located
Which dependencies that library has

Using a library and declaring its dependencies also means that:

A file is loaded only once
There is only a copy of a file for all the modules
A module that depends from a library doesn't need to update the list of files (which are part of that library) when the library changes its files