Most of the time less is more
"Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it's worth it in the end because once you get there, you can move mountains." - Steve Jobs
Databases and models have taught us about normalization of data. The more your data is normalized, the less you have to code. The less you have to code, the less you have to maintain. Hence the goal should not be to add more code, but to add less code.
Netsuite is no different. Workflow and UserEventGasms just slow the interface to a crawl and this performance penalty is easily measured across the organization. Just ask your users on average how much time they spend waiting a day for Netsuite, and then multiply that time out annually by your fully loaded cost of labor. The results will hopefully provide an easy source of optimization.
Start with a MVP
Always start with the MVP. You can always add. Get the basics right and then add features but as you add them, ask yourself if you really need them. Do you really need a bunch of custom segments just do handle what Class, Department, and Location already handle quite elegantly?
Ride on the foundations of a well thought out system
Once you have fully assessed your requirements and needs, take a step back and understand how Netsuite works. It was designed and iterated on by teams of bright people. If you can work within the framework developed, then you can leverage miles of prebuilt integrations.
Keep the end in mind
Ultimately the goal of the GL should be to keep the records of the business. The most important aspect of the GL in our opinion is the reporting and how that reporting is providing the neccessary information for a team to strategically allocate resources to change its profit model.