The answer to your first question is yes. Not only can you determine the source subvolume of a snapshot, you can also see the snapshots for a given subvolume.
For example if you run:
btrfs subvol show /temp/snapshot you'll see something like this:
Parent UUID: 5c1e9a70-3158-6940-94d4-be82e064f8df
Received UUID: -
Creation time: 2017-01-26 22:34:21 -0500
Subvolume ID: 940
Gen at creation: 29824
Parent ID: 5
Top level ID: 5
If that snapshot itself is the source of other snapshots, you'd see them listed under snapshot(s).
The Parent UUID is the source subvolume, which you can use with
btrfs subvol list and
grep to get more information about the source subvolume:
$ btrfs subvol list -u . | grep 5c1e9a70-3158-6940-94d4-be82e064f8df
ID 878 gen 29824 top level 5 uuid 5c1e9a70-3158-6940-94d4-be82e064f8df path home