Since stopping the component requires some initialization having been performed I am not very surprised that this will not work as you obviously expect.
Since there is no need to stop the (or any) component before starting it the question arises why you do not keep to the suggested order of initializing. If you still need to stop the component, call UART_Init() before UART_Start();
But I didn't expect that the component will never work atall after calling STOP and then START.
Initialising USBUART in the begginning will not cause any problem in my project, but I am wondering whats going wrong!
Well, if you never ever initialized your component what do you expect to happen when you try to stop it? You never gave it a chance to set the values you defined in the configuration-dialog which will be saved when you stop it, so what is going to be saved?