Change in the behavior of LACP Bonding and mac-address of ETH members

Estimated after upgrading to version 6.40.6 on several platforms where we have bonding with LACP, we identify that RouterOS now clones the mac-addresses of all member interfaces.

In other words, all the bonding member interfaces now have the same mac-address. In earlier versions, the eth members of the lag maintained their original mac-address.

What is the purpose of this behavior change?

PS: we already tried with the “reset mac-address” and the system forces the cloning again.

FYI:

########### RouterOS: 6.38.7:

> interface bonding print 
Flags: X - disabled, R - running 
 0  R ;;; LAG 4x1GE
      name="lacp-2-core" mtu=1500 mac-address=E4:8D:8C:08:AB:14 arp=enabled arp-timeout=auto slaves=ether1,ether2,ether3,ether4 mode=802.3ad primary=none 
      link-monitoring=mii arp-interval=100ms arp-ip-targets="" mii-interval=100ms down-delay=0ms up-delay=0ms lacp-rate=30secs transmit-hash-policy=layer-2-and-3 
      min-links=2 

> interface ethernet print 
Flags: X - disabled, R - running, S - slave 
 #    NAME                                      MTU MAC-ADDRESS       ARP             MASTER-PORT                                   SWITCH                                  
 0 RS ;;; LAG 4x1GE CORE- p13_xxx
      ether1                                   1500 E4:8D:8C:08:AB:14 enabled         none                                         
 1 RS ;;; LAG 4x1GE CORE- p14_xxx
      ether2                                   1500 E4:8D:8C:08:AB:15 enabled         none                                         
 2 RS ;;; LAG 4x1GE CORE- p15_xxx
      ether3                                   1500 E4:8D:8C:08:AB:16 enabled         none                                         
 3 RS ;;; LAG 4x1GE CORE- p16_xxx
      ether4                                   1500 E4:8D:8C:08:AB:17 enabled         none

########### RouterOS: 6.40.6:


> interface ethernet print 
Flags: X - disabled, R - running, S - slave 
 #    NAME                                      MTU MAC-ADDRESS       ARP             MASTER-PORT                                   SWITCH                                  
 0 RS ;;; Gi1/0/19_xxx (LAG 1/4)
      ether1                                   1500 4C:5E:0C:4E:07:54 enabled         none                                         
 1 RS ;;; Gi1/0/20_xxx (LAG 2/4)
      ether2                                   1500 4C:5E:0C:4E:07:54 enabled         none                                         
 2 RS ;;; Gi1/0/21_xxx (LAG 3/4)
      ether3                                   1500 4C:5E:0C:4E:07:54 enabled         none                                         
 3 RS ;;; Gi1/0/22_xxx (LAG 4/4)
      ether4                                   1500 4C:5E:0C:4E:07:54 enabled         none


> interface bonding print  
Flags: X - disabled, R - running 
 0  R ;;; LAG de 4 Gbps
      name="lacp1-2-core" mtu=1500 mac-address=4C:5E:0C:4E:07:54 arp=enabled arp-timeout=auto slaves=ether1,ether2,ether3,ether4 mode=802.3ad primary=none 
      link-monitoring=mii arp-interval=100ms arp-ip-targets="" mii-interval=100ms down-delay=0ms up-delay=0ms lacp-rate=30secs transmit-hash-policy=layer-2-and-3 
      min-links=0 


 > interface ethernet export 
# mar/15/2018 12:15:02 by RouterOS 6.40.6
# software id = xxxxxxxxxx
#
# model = CCR1036-12G-4S
# serial number = xxxxxxxxxx
/interface ethernet
set [ find default-name=ether1 ] comment="Gi1/0/19_swt-giga-core (LAG 1/4)"
set [ find default-name=ether2 ] comment="Gi1/0/20_swt-giga-core (LAG 2/4)" mac-address=4C:5E:0C:4E:07:54
set [ find default-name=ether3 ] comment="Gi1/0/21_swt-giga-core (LAG 3/4)" mac-address=4C:5E:0C:4E:07:54
set [ find default-name=ether4 ] comment="Gi1/0/22_swt-giga-core (LAG 4/4)" mac-address=4C:5E:0C:4E:07:54

I want to subscribe to that.
I’m experiencing that a LAG (802.3ad) to my switch only uses one of two ethernet links. The other one idles. A short takeout of the busy link forces the traffic to move to the other link. So it’s proved the LAG is functional. But it has more of a failover than a balancing feature. I used 4 PCs doing bandwith tests to the RB450Gx4 router to create traffic. Now I learned that the hash algorithm uses IP and MAC addresses to spread traffic over the link members. But IP as well as MAC are the same on the router if bonding some ports together. So the algorithm only chose one of the links and doesn’t have any entropy to spread the traffic.
Is my assumption correct? How to do proper 802.3ad LAG against a switch (TP-Link T1600G-52TS) that only knows this kind of operation?
RouterOS 6.46.4