1) Ne znam za IBExpert, ne koristim ga.
2) Nema generalnog pravila za DBGrid i cs programiranje. On se koristi kada za njim postoji potreba. Pitanje je koliko se podataka povlaci sa servera u nekom trenutku. Kada postavis DBGrid i otvoris upit on ce preko TClientDataSet-a povuci najmanje onoliko slogova koliko mu treba da prikaze na ekranu ukoliko je TClientDataSet.PacketRecords > -1. Na ovaj nacin se ogranicava povlacenje svih slogova koji su rezultat upita. U mrezi sa vise klijenata ovo moze dramaticno smanjiti mrezni saobracaj i rasteretiti server. Gde god ne postoji potreba za DBGrid-om ne treba ga ni stavljati. Upite je pozeljno praviti tako da sadrze minimalni potrebni set slogova. Ukoliko budes radio vece projekte shvatices i sam sve ovo. Pravilo koje cesto spominjem je: ni jedan hardver ne moze da ubrza softver u kome je napravljena pogresna procena u dizajnu i/ili implementaciji.
3) Stored procedure se izvrsavaju direktno na serveru i server ih kompajlira unapred tako da su vrlo brze. Sta rade zavisi od toga sta programer zeli i sta mu sql sintaksa za stored procedure dozvoljava.Sto se tice povratnih parametara pogledaj dokumentaciju: fajl DataDef.pdf (sekcija "Working with StoredProcedures") koja ide uz InterBase.