- Your first question is answered in this answer, this answer, this answer, etc. You should search this site to see if your question has been previously answered.
- If you use SLAAC to assign IPv6 addresses, the 48-bit MAC address is
converted to a modified 64-bit EUI. This has been of concern, and
most OSes, by default, use privacy extensions/random address
generation. See this answer about this question.
- You can change the MAC address which is used with most NICs, but I
don't know of any which can be changed in the hardware. You are
supposed to set the U/L bit when using your own MAC address, but I
really don't see that being followed. I am not aware of there being
anything illegal about changing your MAC address.
- VoIP phones that run on LANs which use MAC addresses (e.g. ethernet
or Wi-Fi) will have MAC addresses.
MAC addresses are only significant on a LAN, and just about anyone on a LAN can get your MAC address from the host ARP cache after communicating with your host at layer-3. To send a layer-3 packet to your host, a host will need to use something like ARP (IPv4) or ND (IPv6) to get your layer-2 address (MAC). Your host will also use ARP (a layer-2 broadcast) to discover the MAC addresses of other hosts, and it announces your MAC address to other hosts.