There is always confusion about the serial devices on this apparently very complex ARM Cortex M0+ microcontroller.
The following applies for Moteino M0 as it is defined in the current Arduino board package definition.
The USB device on the M0 is just like any other hardware device (SPI, I2C, Serial, RTC, etc).
It requires to be ENABLED (ie. via SerialUSB.begin(baud does not matter)) - this causes the USB to enumerate the board as a USB serial device.
For it to accept a new sketch from the IDE, the MCU also has to be awake, not sleeping, or else the board will enumerate/show as a serial device but it will not be active and will not respond to serial commands. Sometimes, depending what your sketch does, if the MCU is busy burning cycles doing other things, it will not respond to the IDE's "hey I have a new sketch for you" call. In these cases you will have to manually reset the board, and put it in bootloader mode by double-tapping the onboard button.
The bootloader does this and emulates 1 serial port via the USB, and when it jumps to the sketch - if any and if that sketch has SerialUSB enabled - it will enumerate another new serial Port.
Otherwise, if SerialUSB.begin is not called or USB is specifically disabled (ex. during deep sleep), the D- and D+ lines are simply 2 GPIO pins that don't do anything and your PC will not recognize the board as any type of device.
It's also worth mentioning there are 2 additional GPIO serial devices available on the Moteino M0 (Serial on pins 30,31, and Serial1 on pins 0,1).