I don't find it easier at all. The opposite, for a library and
associated helper apps, actually: I much prefer to have the library
(src/*, src/lib/*) separate from helper apps (src/luac/*). That way,
if I have to build a project file myself, I don't have to weed out
the extra files that aren't part of the library (print.c, lua.c).
But that is what a makefile is for. Since you won't have to polute your
makefile with rules to send object files to one directory, binaries to
another, and to draw source files from yet another, you can even use
implicit rules to build these binaries. That is, if you don't want to
add an extra one-line target to create each one of them.