I can see some different things:
for file: "regress::hthor::book"  there is:

RECORD
  unsigned4 id;
  string name;
  string author;
  unsigned1 rating100;
  udecimal8_2 price;
  unsigned4 personid;
 END;

For file "regress::hthor::bookindex" there is:

{ string40 name, string40 author, unsigned4 id };

For file "regress::hthor::housepersonbook"  there is:

sqbookidrec := RECORD
    unsigned4 id;
    string name;
    string author;
    unsigned1 rating100;
    udecimal8_2 price;
   END;

sqpersonbookidrec := RECORD
   unsigned4 id;
   string forename;
   string surname;
   udecimal8 dob;
   udecimal8 booklimit;
   unsigned2 aage;
   DATASET(sqbookidrec) books;
  END;

RECORD
  unsigned4 id;
  string addr;
  string10 postcode;
  unsigned2 yearbuilt;
  DATASET(sqpersonbookidrec) persons;
 END;

Ok. It looks like if the record isn't nested then no prefix.