TL;DR
Relax specification last!
Initial specification and reference implementation should be as strict as possible (there should be only one way to convey a given dataset). Permissive specification would hinder your format after a few years
Initial specification
The fact that you are asking this question indicates, that there is no well-defined specification for the file format and you are likely writing the reference implementation.
It is very important for initial specification and reference implementation to be as restrictive as possible, because relaxing the requirements is irreversible. Permissive parser would allow alternative interpretations for the specification, splitting the community and making it hard to introduce changes (extensible specification is fine, permissive is not).
While a permissive specification may help a private project and would be very convenient in a startup, it will not last.
Applicability
There are plenty of horror stories about JSON and HTML which prove this point, but those are large and and widely used. My personal experience confirms, that the same principle applies to medium-sized projects due to versioning and backward compatibility problems. Do not rest easy, thinking that your smallish web-site or desktop application are not affected!
Recommendations
Validate
If the format to parse is error-prone or inconvenient to use, before trying to relax the requirements, consider adding a good error reporting and provide a validation tool. It is trivial to produce a CSV for however strict requirements, as long as bugs are easily detected and reproduced.
Warn before relaxing
When your format is eventually adopted (either by a wide audience, or multiple product versions or multiple products) you may find incompatibilities in the ecosystem. Do not relax the specification! First, add a warning system in your reference implementation, that accepts invalid input, but reports an error. Be careful when implementing it, make sure that relaxed implementation does not interpret valid input differently.
Extensible is not permissive
Do not attempt to make the protocol extensible by relying on permissive parser. Provide strict rules for extensions. Plan for extensions from the start. Remember YAGNI - if you really think that no extensions are needed, it is fine to leave protocol fixed.
CSV is extensible if header line is required and column names are well-defined.
Versioning
Consider a versioning scheme for your data. Versioning is paramount to remove or change a column. Sometimes a well-defined file extension is all it takes. A defined file extension is useful even without versioning, as it further restricts your initial specification (which is a good thing).
Permissive protocol is a final resort
There is nothing bad with a permissive protocol that is:
- provably unavoidable
- carefully considered
Once the reference implementation is stabilized and receives user feedback, the extension can be carefully considered and more inputs can be considered valid.