/interface/ethernet/print does not give speed for me. It looks like it did back in ROS6 but not in ROS7.
On a slightly related note, I'm assuming you're using proplist because it helps performance in some way? I've just been getting all the results back and then getting the information I need.
The screenshot I posted of my implementation using that data is a 7.10.2 router, and it does show speed, but only when the interface has auto-negotiation disabled. /interface/ethernet/monitor does give the current rate.
/interface/ethernet/monitor
=numbers=ether1,ether2
=once=
Output:
!re=name=ether1=status=link-ok=auto-negotiation=done=rate=1Gbps=full-duplex=true=tx-flow-control=false=rx-flow-control=false=advertising=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full=link-partner-advertising=10M-half,10M-full,100M-half,100M-full,1000M-full
!re=name=ether2=status=no-link=auto-negotiation=done=advertising=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full=link-partner-advertising=
!done
As for using the proplist, It definitely makes a difference on the router CPU vs when you are returning really large results, but also to a lessor degree on the bandwidth used and the time the API call takes to complete. For a small result set there's not much benefit, but I'm in the habit of doing it almost all the time now and I find it's also just easier to deal with when you're only retrieving the data you need, particularly if you've got to troubleshoot something and debug the results manually.