Hi nightfox
You can set expiration dates for products with our Multi-Inventory add-on, and also create multiple inventories per product (each of them with their own stock, BBE date, and prices).
The discounts part is not possible though. At least not automatically, but you could set a sale price for the inventories near to expire manually. Or, with custom coding, implement the automatic discounts system of course.
Best Regards,
Salva.