X is a string, so you can't unintern x. I assume you mean the result of the intern?
But that's a totally different question.  INTERN can't possibly return anything but a keyword.
We've already discussed before (in the bug I opened suggesting that keywordp should be foldable) that keyword's can always "degrade" to ordinary symbols and that there are various internal things that are fundamentally broken if that actually happens in practice.

On Thu, Jun 19, 2014 at 12:48 PM, Stas Boukarev <stassats@gmail.com> wrote:
"Douglas Katzman" <snuglas@users.sourceforge.net> writes:

> The branch "master" has been updated in SBCL:
>        via  1d796c22c86e8be5e49857edb3637cc9b70d0d94 (commit)
>       from  758126197a609c34445dbd643f65aebb19bd602c (commit)
> - Log -----------------------------------------------------------------
> commit 1d796c22c86e8be5e49857edb3637cc9b70d0d94
> Author: Douglas Katzman <dougk@google.com>
> Date:   Wed Jun 18 22:32:25 2014 -0400
>     Derive that (INTERN x "KEYWORD") produces a KEYWORD
What happens when unintern is called on x?

With best regards, Stas.

HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
Sbcl-devel mailing list