Seems fair, the new line at end of file is, I believe, to satisfy the C requirement (from the standard, my emphasis) "A source file that is __not empty__ shall end in a new-line character". That doesn't prevent a file containing just a newline of course.
Yes it prevents creating empty files.
Then again creating empty files with Geany isn't much of a use of its facilities :) Which is probably why it hasn't bothered anybody to date.