It is possible. The only thing needed is a hell lot of duplicate items with different display ids.
If you want to go through the whole creating new items for it route, it is quite easy.You would just check to see if those values already exist - if not then insert a new record and add it to the player.You can insert new ID's into a new table for logging purposes, and have a algorithm that runs every few days that deletes all records that do not exist in the character database.These would be very simple to implement. It's just trying to comprehend the amount of conditions and fields that need to be handled.Furthermore, you can override the players cache by directly sending the item data to them which replaces their cached data.Implement a simple interface via a custom addon. If you want client <-> server interaction, send messages to a player that does not exist -> have the error message not display -> have the server handle messages received to that player and react depending on it and the conditions (to prevent exploiting).It really does seem very simple to me.
The actual problem is that for good items, more than the server side data is needed, i.e. some DBCs, which you can't update dynamically. Of course it is possible to create a new virtual item (no database entries needed at all) and push it.