If I open up a router (using port-forwarding for port 3389) for Remote Assistance and point that traffic to one of the IP addresses on my LAN , how is it possible that I am able to use Remote Assistance over the internet successfully from one of the other machines on the LAN? Is my router playing up? Or does Remote Assistance try going through other ports if 3389 is not open?
Your router is doing exactly what you told it to: routing RDP traffic coming from the Internet to your RDP-enabled computer. Without that, attempts to connect to that computer from the Internet would fail. Connections from one LAN computer to another are not affected by the forwarding you set up on your router. You need the forwarding when connecting from the Internet because your network looks like a single IP address from outside your router; since your router isn't an RDP server, attempts to connect are ignored. With forwarding enabled, connections from outside the router can be forwarded to a computer that can make use of them, namely your RDP-enabled computer. Forwarding is not required for connections between LAN computers because within the LAN all the computers have distinct IP numbers. This doesn't change when you set up forwarding; your LAN computers are still accessible by their IP as before. Port 3389 is not blocked in any way when your forward it.
I use VNC but i think the problem is the same. You should use port forwarding. Read about how to set up port forwarding on your router manual. For example if you have computer A,B,and C on the same LAN and your public ip address is 22.214.171.124 then you can set port forwarding so if you access 126.96.36.199 on port 9090 you can reach computer A. Port 9001 for computer B. Port 9001 for computer C. Etc.
Just picking out your most important line (with my emphasis): "... how is it possible that I am able to use Remote Assistance over the internet successfully from one of the other machines on the LAN?"
On most home routers port routing should only affect inbound connections from external sources. So, if you are making an outbound connection from any internal machine, your port forwarding configuration will be irrelevant.
I'm pretty sure NAT will ensure that any outbound connection will be successful in spite of any port forwarding on the same port number. This is because the internal machine opens the link, and so NAT will route any response back to its internal source (not using port forwarding) because its still an outbound connection, even when the other source responds. (If this doesn't seem to make sense to you then think of phone calls: when Alice calls Bob it's always a call from Alice to Bob, even when Bob is talking).
Edit What I should've added, is that obviously port forwarding doesn't stop the outbound connections you need to find the relevant option on your router that does. I have a fairly old Belkin at the moment and it has a config section titled "Client IP Filters" that allows me to restrict what internal IP addresses can do - you need to see if you router provides similar functionality and configure as appropriate.
Try disabling UPnP in your router, while leaving the manual port forwarding enabled.
In my experience there is no need to forward ports on the remote LAN if the Remote Assistance is initiated using Windows Live Messenger by the user requiring help, as it is an outgoing request.
The Remote Assistance icon in the Start Menu also has something called Easy Connect, where the connection is set up using a password, using a separate server to make the rendezvous (this may be new to Windows 7 - I've only just noticed it).