I recommand you of this link. http://www.cypress.com/?rID=34870 This firmware is for psoc1 but host program and test program is same. Many host examples are useful. Examples for each psoc firmware is there every where. HID, BULK, MIDI... I'm not shavvy about bootloader actually. Thank you.
Yes it is possible to use the USB module in both bootloader and Main program.
Also, There is a USB-HID example in PSOC Creator. Just look in the example projects.
The bootloading process will look at first whether there is a valid device with a valid new bootloadable program. If not, the usual initialization process is started which in turn supplied your main() with all the hardware you defined.
If there is a new bootloadable it will get transferred through the interface and after completion a reset is made and the process starts all over again. Since now the bootloadable is not "New" (it has been installed already) control is taken over by the initialization process of the bootloadable.
Hope that helps for understanding
Some help -
www.cypress.com/ AN73503 - USB HIAN60317 - PSoC® 3 and PSoC 5LP I2C BootloaderD Bootloader for PSoC® 3 and PSoC 5LP
www.cypress.com/ AN68272 - PSoC® 3 and PSoC 5LP - Customizing the Bootloader Communication Channel
www.cypress.com/ AN60317 - PSoC® 3 and PSoC 5LP I2C Bootloader