1) The document discusses code splitting strategies for bundling JavaScript applications, including route-based code splitting, splitting on-demand components, and using the Split Chunks plugin. 2) It recommends optimizing lazy loading through techniques like prefetching and using IntersectionObserver to preload resources the user may visit. 3) The key code splitting strategies discussed are route-based splitting, splitting common dependencies, and splitting asynchronous or on-demand components.