Answers a, b, and e participate in push notifications. You can argue that answer c possibly would, if you wrote an application to maintain channel URIs and provide a user interface for sending notifications to devices. Answer d is much more unlikely, though, unless the only Windows Phone 7 device you have access to belongs to your local mail carrier.
Raw notifications are received only by applications that are currently running. If an application isn't running, notification messages are discarded.
Binding to toast notifications (and indeed to tile notifications) is necessary because it instructs the push client on your device to listen for notifications. If you don't bind these notifications, they won't be received.
When you call BindToShellTile(), you have the option of passing a list of domains from which tile image URIs will be accepted. If you don't supply such a list, you'll only be able to set the tile image to a resource that's local to the application.
If a device is switched off, you'll receive the HTTP response header X-DeviceConnectionStatus with a value of TempDisconnected. If you also receive an X-NotificationStatus header value or Received, then the message is queued and will be delivered later when the device is switched on. Otherwise, you can try to send the message later.