Did i get it right that
No. Read lib. use lib 'cow'; is the standard, clean alternative to unshift @INC, 'cow'; It adds a directory to the search locations; it does not identify or pull in any files into the current program.
if i keep all my project files in the same directory, ... "use lib" will work "as expected".
No; if you do that, then you never need use lib ... at all, for the simple reason that '.' is in @INC by default.
I reckon we are the only monastery ever to have a dungeon stuffed with 16,000 zombies.