There are different "classes" of session that get provided in different contexts.
You get different types of Session primarily as a security control. Some can only be used to make API calls, some can't make API calls, while others give you the full level of control that the user has.
The Session Types are accessible under "User Session Information" in the setup pages. E.g.
They aren't particularly well documented as best I can tell. There is Understanding Session Types, but it doesn't outline what the capabilities of each session type are. It also doesn't cover the corresponding Login Type column.
The Session ID that you could get from a SOAP UI login call would be a "full" session ID. The one from the developer console is usually fully functional, but is likely spun off as a child of the primary session. That would allow it to be killed off without terminating the primary session.
You can also get different types of session based on the scope if you are doing oAuth.
I do know that the Spring '17 Tooling API has not one, but two new SessionSettings complex types. One if the
sobject.tooling.soap.sforce.com namespace and one in the
metadata.tooling.soap.sforce.com. Both of those namespaces import the other. If that isn't enough to make your head explode you might be able to get some useful details out about the current session. Details like