No, that's very unlikely to work. Windows itself doesn't do anything with the DCB.EofChar you specify. Or for that matter any of the other special characters in the DCB. It directly passes it to the device driver, the underlying ioctl is IOCTL_SERIAL_SET_CHARS. Leaving it entirely up to the driver to implement them.
Most hardware vendors that write serial port drivers (USB emulators most of all these days), use the sample driver code that's included in the WDK. Which does nothing with SERIAL_CHARS.EofChar. So the inevitable outcome is that nobody implements it. I personally have never encountered one, knowingly anyway.
So it is expected not to have any effect.
You can usually expect DCB.EvtChar to work, it powers the EV_RXFLAG option for WaitCommEvent(). In other words, if you set it to the line terminator then it can give you a signal that ReadFile() is going to return at least a complete line.
But you explicitly said you don't want to do this. Everybody solves this by simply buffering the extra data that is returned by ReadFile(). Or by reading one byte at a time, which is okay because serial ports are slow anyway.