Have a look at biber which in the current 1.5 dev version on SourceForge has a new "tool" mode which allows you to use biber's reencoding and source mapping features independently of biblatex. The source mapping features are what you mainly need from your description and this is all documented in the PDF manual. I can provide specific examples if you have specific questions. biber will do everything you mention above apart from the @string expansion which would be possible to add but as you say, it's fairly idiosyncratic.
Of course, you can do this dynamically with biber too - with the changes being applied as the .bib is read but the .bib is not touched. The new tool mode allows you to write the changed .bib to another file without writing a .bbl.
For example, here is how in tool mode to tackle points 2, 3 5 and 6 in your examples. Point 1 is better handled semantically with biblatex and its max/min names options. Create a biber.conf with:
<config>
<sourcemap>
<maps datatype="bibtex" map_overwrite="1">
<map>
<map_step map_field_set="issn" map_null="1"/>
</map>
<map>
<per_type>ARTICLE</per_type>
<map_step map_field_set="title" map_null="1"/>
</map>
<map>
<per_type>ARTICLE</per_type>
<map_step map_field_source="pages" map_final="1"/>
<map_step map_field_set="archiveprefix" map_null="1"/>
<map_step map_field_set="eprint" map_null="1"/>
<map_step map_field_set="primaryclss" map_null="1"/>
</map>
</maps>
<map>
<map_step map_field_source="doi" map_match="[\\;]" map_final="1"/>
<map_step map_field_set="doi" map_null="1"/>
</map>
</sourcemap>
</config>
Then run biber with
biber --tool file.bib
Which will look in the default locations for your biber.conf
and will output a file called file_bibertool.bib
.
This is also all possible, as I said, dynamically using the biber.conf as you process the file normally into a .bbl with biber and also the whole mapping functionality is available in biblatex through macros (see \DeclareSourcemap in the biblatex documentation) if you wanted to do this on a per-document basis dynamically.
Best Answer
crossref
can be used if you have multiple entries referring to the same proceeding, book or similar. The advantage is that things which are common to all entries only have to specified once, for example if Duck and Mouse both wrote proceedings for the same conference, the year or title of this conference only have to be given once.