That is correct. All source files in all subfolders under src are compiled if the library is determined to be a dependency of the sketch. The discovery process is done only on the headers in the root of the src subfolder, but after that the library folder has been added to the include search path (-I), so you can then include headers in subfolder as well. For example, if the library was structured like so:
Arduino_KeyboardUTF8
|_ library.properties
|_ src
|_ KeyboardUTF8.h
|_ layouts
|_ Keyboard_ADLM.h
then you can do this:
#include <KeyboardUTF8.h> // This one causes a successful discovery and adds the library to the include search path
#include <layouts/Keyboard_ADLM.h> // Now you can include files from the subfolders under `src` because it's already in the include search path
But not this:
#include <layouts/Keyboard_ADLM.h> // Discovery can't find this header so you get an error
#include <KeyboardUTF8.h>