Why are routers allowed to change the priority of an IPv6 packet?. If they do so then, a packet with high priority might be dropped. Then giving priority to the packets makes no sense!.
Any network device can change the DSCP values.
It is a matter of trust. For instance, ISPs will not trust your markings (you may be able to pay your direct ISP to trust your markings, to a certain degree, but subsequent ISPs in the path will ignore or change them to BE). You wouldn't/shouldn't trust another network's markings on your own network.
QoS is all about fairness, as you define it. Other network administrators will define it differently than you do. You should almost never trust an application's markings, otherwise all the applications could mark their traffic as EF. For instance, by default, Cisco switches will remark all incoming traffic to BE.
You should mark the traffic as close to the source as possible (on the access switch, if you can) so that you can treat it the way you like for as long as possible in your own network.