Not so much "dumb", but from someone who hasn't learned about the different linkable object and executable formats. A .com file, as you observe, is limited to 64k. Nasm will create a file bigger than 64k and name it .com, but dos won't load (and execute) it. A .com file, on disk, consists entirely of the code you wrote - there's no "executable header". It is this lack of an executable header that allows dos to determine the executable type - dos doesn't care if it's named .com or .exe! If it sees the letters "MZ" (the guy's initials - Mark something Polish - who wrote the dos code), it expects the rest of the executable header... which includes the information necessary to relocate it.
It is possible to use Nasm in "-f bin" output mode to create our own "MZ header", but it is more usual to use "-f obj" to create a linkable object file which, with the assistance of a linker, creates the executable header with the relocation information, possible linking muliple modules into a single executable.
If you attempt to link a C wrapper with a .com file, the linker will refuse... be unable, because the necessary information isn't there. I can't predict exactly what the linker will say about it, but it won't work!
I'm sure it's possible to "trick" C into including your plain binary code, and maybe even making it work right if you know what you're doing, but it's a lot easier to assemble into "-f obj" (or some other linkable format) and let the linker do its job!
Best,
Frank