Louis, great questions and you are on a good track. Let me add some tidbits to clarify and also answer your questions.
According to standards, IPv6 clients should only request for addr and/or info from a DHCPv6 when told to do so, by an RA. Also, clients get their IPv6 def g/w -only- from an RA (not via DHCPv6, this is different than in DHCP) via the L flag being on (generally its default). There is a bit of descrepncy on L required to be on or off and do the clients need it. I have seen mixed results in all my testing...best rule of thumb, leave L on for clients.
So on questions:
1) you need RAs for all subnets/vlans that have clients/devices. You don't need them for p2p links. And you are good for turning the A flag off for Stateful operations. But you must have M flag on for Stateful (DHCPv6) operations. More info next.
2) if the M flag is on, that implies that the clients request is for an IPv6 address as well as for "other info" like dns/domain name, d/l servers, etc. If you set the O flag on while M is on, there is nothing gained, or hurt (my preference: M on, O doesn't matter, but I leave O off. Basically, O flag is used with A flag for Stateless DHCPv6 (A flag on for client to get prefix and self-derive IID, O flag on for DHCPv6 for dns/domain, etc).
You have done well!
hth...Jeff