No, you understand it wrong. autoPin means if the url is opened for the 2nd time, it will be automatically pinned, not related to non-closeable. What you refer to as an unclosed pinned tab is a bookmark instead. I may clear the auto-pin list which is stored in bookmarks, when extensions.tabutils.autoPin is set to false. Currently it is not done for I fear that some people may play with these options without enough knowledge.
I may have gotten the purpose wrong, but the unintended behavior can be reproduced for your reference:
1. Make sure that extensions.tabutils.autoPin is set to default (true).
2. Make sure that extensions.tabutils.pinTab.autoProtect is set to false.
3. Open a new tab, then browse to a site.
4. Pin the tab. The tab is then pinned.
5. Now, you should be able to close the pinned tab because Protect is not set. But, upon closing the pinned tab, the tab doesn't actually close, nor does the tab's currently loaded site changes. Instead, what happens is that focus is diverted to another tab, and going back to the pinned tab would initiate an auto-reload, another unintended behavior.
None of the steps involved opening bookmarks, or urls that are already bookmarked.
But:
1. If you set extensions.tabutils.autoPin to false.
2. Go back to the pinned tab that didn't close, unpin it, then pin again.
3. Now try closing the pinned tab, the tab is then closed normally.
So to prevent these behaviors, you must set extensions.tabutils.autoPin to false. Future tabs that are pinned afterwards can now be closed normally, provided that Protect for the pinned tab is _not_ active.
These behaviors have been observed in Firefox 3.6
As you can see, even though the prefs have been intended to address another behavior, it has introduced a side-effect to another function and affected normal closing routines for Pinned tabs.
I haven't explored yet on other functions of the program, but you may want to re-evaluate the prefs so far, pitting them against some sort of a visualization table that will provide an overview of the behavior of these options and how it overlaps or affects the other functions. With the visualization table, it may prove to be helpful in identifying functions to be disabled when one is set, or setting functions when two or more conditions are met.