A. A terminal server can use a specified profile for a user's roaming profile, but the practice of sharing a profile between desktop and Terminal Services sessions is highly discouraged because of the risk of inconsistencies being introduced—a user might be logged onto a client OS accessing the roaming profile and also have a Terminal Services session using the same profile. Whichever session logged off last would overwrite any changes made by the other session. You could also see problems if a client OS profile is loaded onto a server OS, depending on the configuration of the profile.
The best approach is to have two separate profiles, a roaming profile for client OS logon and a terminal services profile for Terminal Services sessions. This is easy to configure using the properties of the user account via the Profile and Remote Desktop Services Profile tabs.
Remember that if you're using published applications through RemoteApp or Citrix XenDesktop, which only display applications on your local desktop, you're still running a complete session on the remote server, so you need to be careful to use separate profiles. If you actually use multiple Terminal Service sessions concurrently, you need to look at using local profiles or mandatory profiles to avoid the inconsistency problems associated with multiple systems using a profile at the same time. You could also think about a third-party profile solution, such as AppSense, which virtualizes the entire user profile.