What model design supports both data store backed and free form entries?
Based on the details you've provided I'd say it sounds fine. 

Things that may or may not be a problem based on further information.

(1) Even though you say there is no relationship between the two systems and no foreign key, if you were to switch third part systems, you would be left with a bunch of meaningless ids for books that were added from the previous 3rd part system.  Is that okay?  If not, you may need to add a lookup table of third party systems that can related to the IDs in the Book table so you can later tell which system they came from. 

(2) If the only reason for the IDs from the third party system to be there is to check for their existence, maybe a simply IsFrom3rdParty or IsFreeForm boolean column would be sufficient.  It would seem to meet all the requirements you lay out here and would be simpler than the ID to implement and would better convey the actual information you have (which is simply that it came from a 3rd party system.  You can't guarantee that the ID will relate to anything especially if the backend system has changed)

Otherwise, yes it sounds good.