But surely there are scenarios where a big image has to be used, and you cannot compose, right?
Under such a scenario, even a weak mobile will run your game at 40fps+, try it, make a quick background and one character sprite and updating SpriteFont, compile and test on your device. Should be silk smooth with the text update.
The only problem is multiple pictures like that compiled with CocoonJS will destroy even modern devices in terms of memory usage. CocoonJS loads ALL your graphics into memory on startup, even if you do not require it on your current layout. It's the bane for larger games.
But if you do it, use Intel XDK, it will only load the assets required for that one layout. So such a scene, with a 720p background, a large sprite etc, wouldn't take more than 50mb of ram. It then frees the ram when you change layout into a another scene.
I drew about 30 different 720p backgrounds for my Ninja Legacy (first) game, since I was clueless about good game design and about CJS's inability to handle layout loading... I ended up using about 11 BGs only and cut back on character animation frames. Still, the game used 450MB of ram with CJS. Same game with Crosswalk/XDK, only 240MB peak in a busy scene with lots of enemies.