I don't see any real disagreement here. Some of the databases I work with use "|" instead of "," and disallow "|" as a valid data character - so this "|" within "|" issue does not come up.
When I generate a CSV file on my own, sometimes I use the "|" instead of "," when I know that "|" is not going to be in the data. I'm just saying that option is possible. Although the format is called "Comma Separated Value", the character can be anything you want, which is what you are saying. Some folks take CSV literally and don't realize that some other character can be used and that standard programs can parse files like that. To parse the general case of a CSV file, I would use one of the Perl modules as this is a very deceptively easy looking, but very hard to implement specification.