Why there’s have to be a separate process for ashDisp?
Because it runs under the account of the currently logged-on user (unlike the other services that run under LOCALSYSTEM account). This way, it is able to perform the GUI tasks (showing windows, icon, …)