So here is my point to point idea of how to approach it and I'm curious as to people's reactions and thoughts? I'm aiming for modestly efficient here since editing blog tags isn't something that will happen save once every few days any way.
1.) Get array of previous tags (submitted with form as hidden input).
2.) Compare to array of current tags to previous tags.
3.) Create new array of expired tags (that were in the old tag array but no longer found in the new tag array).
4.) Do foreach for removing tags in the expired tag array.
I figured by sending duplicating the tag array a second time from a single query I could avoid an unnecessary SELECT query (or queries even) to figure out what tags needed to be removed.
I'm working on all of this now and in to the evening though I'm interested in any related thoughts.