You must specify a variable to preserve newlines.
$ var=$(cat isbndb.sample); echo "$var" | wc -l
And catnot required in both cases:
$ wc -l < isbndb.sample
$ var=$(< isbndb.sample); echo "$var" | wc -l
Edit:
Bash usually extracts additional trailing lines from a file when it assigns its contents to a variable. You have to resort to some tricks to save them. Try the following:
IFS='' read -d '' var < isbndb.sample; echo "$var" | wc -l
IFS read null, .