News Linux kernel source expands beyond 40 million lines – it has doubled in size in a decade

That number is a bogus metric. Blank lines and comments are not code and don't count. Anything skipped over by the compiler (discounting the if/then/else compiler directives) and not turned into executable code also doesn't count.
How far can one shrink the size for particular system setup to maintain some flexibility with USB hardware?