There is no restriction that windows service should not have any GUI. Windows services can have GUI. But if it has, it was shown up in Service 0. It was possible in earlier versions of Windows before Vista. Lets have a detailed discussion on it.
A logon session is created whenever a user logs in to Windows. Each session has a Session ID. All the windows services will run in Session 0.
In Session 0, a user can see and interact with the graphical elements of any program running there, including those created by Windows Services in earlier versions like Windows NT, 2000, XP and Server 2003.
Later due to security concerns, Microsoft isolated the Session 0. And the impact is services cannot show their GUI. This is one of the case.
Consider, A service attempts to create a user interface (UI), such as a dialog box, in Session 0. Because the user is not running in Session 0 due to the isolation of service 0, he or she never sees the UI and therefore cannot provide the input that the service is looking for. The service appears to stop functioning because it is waiting for a user response that does not occur.
Due to this isolation, services cannot communicate with the applications through Windows message and vice versa. We use RPC, Interactive Services Detection Service (ISDS) and IPC for the communication between services and applications.