a "file" lets you look at permissions, size, checksum, etc, essentially the data about the 'container'.
the "config file" lets you look inside at the parsed contents of the file - eg if you have a bunch of 'name = value' settings we can look if 'foo=bar' inside the file.
Configuration Files typically have a fixed sytax, allowing BL to parse them and treat the lines as individual configuration items. Since each line is a CI, you can do some neat things, like:
- take a snapshot of a single line in the file, so you can compare (audit) other systems against it, regardless of the other contents of the file on the target system.
- create a package from a single line in the file, so you can deploy it to other systems without worrying about blowing away the other contents of the file.
- create a Component that includes just one line from a configuration file, possibly with other configuration objects. Then, by using Roles Based Access, you can grant certain users the ability to read, write, etc., only one line in that file.
You can still edit the file as a file, but you get the added component functionality only with configuration files, and this is only possible due to the predictable sytax, which is not necessarily true of other types of files.