The invoice is not created until after payment has been confirmed, so it is not possible to send the invoice number to Paypal. This is because if the invoice is created first, then the customer backs out of payment, you are left with an unpaid invoice hanging around. Customers backing out of payment is not uncommon, even if they then go back and pay successfully later (in which case a 2nd invoice would be produced if it were created before payment).
Some progress has been made in enabling transactions to be tied up manually to records in nBill with the new transaction search feature. However, Paypal unhelpfully do not show the merchant's transaction ID - only their own (for some reason, the only time Paypal tell you the ID number that was used to create the payment is when a subscription is cancelled). So the only alternative, as you say, is for nBill to record the transaction number generated by Paypal. Even then, it will only be stored against the income record, but at least you have a way of telling which invoice it relates to. I will see if I can incorporate this into the next release.
As for echoing variables, it depends where you are doing it and what information you want.