SAP is right in the sense that while in the presentation layer if you read the database layer, that's generally a bad idea because you avoid buffering built-in by SAP at each layer. As I read this further you more than likely have an database tuning issue if COM_PRODUCT_GUID_GET is the reason why performance is so bad. I suggest keeping your old code and running a SQL trace to see what is going on with the select times. As others have stated at some point the underlying BOL objects have to call that funciton module or read from the same underlying table in the same fashion.
You can also write a quick and dirty z-program or just do a single test on that function module to see if the performance is really that bad. Now technically if you only are showing less 10 line items then this call shoudl not be painful. It's only when you are processing multiple line items with different product id's would the performance should suffer. That being said I'm suprised SAP just didnt' tell you to install HANA since that's what they tell everyone to solve all the world's problems
BTW: How many products do you have in your CRM system?
Take care,
Stephen