With any system you have to assume if you are doing something unsupported or messing with the BC server side calls directly (BC has the right to change this), but with that said Liam (from the site) has publicly said BC wont change them. So I've developed versions that are very light in terms of not not trying to rock the boat too much with changing the page (in case BC changes) and other versions that I re-wrote all the BC Javascript and made the AJAX calls myself to BC server side, I also have an API version that can do any custom shipping amount dynamically (as BC supports this in the API).... so with that all said, it is all possible.
Regarding your question, take a look at the BC javascript, it does the API call then injects the server response (assuming no error) into the container DIV, just trap that (stop it from doing it) or allow it too do it, but write a DOM attribute in the body tag or drop a cookie or hash tag in URL or some way you can detect that the post code has already been selected and that you need to put it back in, your javascript will not re-execute when the DIV update (because it's not a page reload). So make sure you can detect when the DIV was updated so you can fire off your code to update the display. Also all the discount codes, remove item and update item will also refresh the DIV so you'll also have to trap them depending on your implementation.
You will also have to make sure people don't enter in a free post code then change it too a non free post code and then checkout with zero shipping.