These are the reasons I see:
- Normalization is impractical
- Quite a few non-trivial datatypes
- Computed fields need to be stored as computation is more expensive than storage
- Biological data has extremely flexible schema
- Data is more transient than typical transaction data stored in RDBs
- Rarely do we need to implement granular security on the underlying files
- RDB is a layer added to files, makes processes slower in our field. We spend longer getting it to relational shape than in actually using this data
- Concurrent per-record write access (and locking hierarchies) is rarely necessary
- Most of our operations involve at least a GROUP BY operation, making structured DBs with map-reduce frameworks more relevant
That being said, relational DBs can be really useful for reference datasets, such as 1000 genomes or ESP. Storing commonly accessed values (such as population specific allele counts and frequencies) and indexing make lookup operations easier and automation friendly.
Addressing your example, BAM is binary. I'd store it in a BLOB field or convert it to SAM and store it in a normal relation, compromising both size as well as access speed. And I use it perhaps a few times for variant calling, coverage analysis and expression analyses. I do not see a huge gain in a relational BAM format.
Another fact is the difference between structured and relational data. BAM is structured, most formats in bioinformatics are, but I'm yet to see any relational data in the field.
See also: Why are we still using Bam files? And not Cram, HDF5 or improved Bam files?