I have not heard anything about there being a fix for your issue. I believe that CF serializeJSON also incorrectly inserts "no" as "false". Or was it zero as false, I can't remember. I think Ben Nadel created a JSON function that will properly encode.
Fear not. I ran into this myself. You can cut an paste this code and change it to your needs. Please note, I changed the <cfhttp> request to add (getasbinary="never") and (result="getdata") in case you are using multiple cfhttp requests on the same page.
<!--- Get the JSON Feed --->
<cfhttp getasbinary="never" result="getdata" url="http://localhost:8500/My_Stuff/Ajax/Books/CreateJSON_NEW.cfm">
The following REReplace functions strip the function wrapper. --->
<cfset theData=REReplace(theData, "\s*\)\s*$", "")>
It appears that SerializeJSON is being called twice, once on the structure and once on the results of the serialized string of the structure. I use serializeJSON all the time and have not seen what you are describing (although there are other issues, like assuming that "9" and 9 both serialize as 9, or "true" and true).