A Basic4PPC library contains object
types, such as Sprite, which from which you create named instances of
objects of that type.
"Sprite", or any other type name from a library, is never used as a generic name (with one exception - as a parameter to AddObject). Once an object is created, either at design time, or at runtime by AddObject, it must be instantiated (initialised) by calling one of its' NewX methods. There is nothing to stop you creating a Sprite object named "Sprite" but it could be confusing if you do. The examples use "Sprite" as the name to show the type of object, in use you replace this with your own name. This is a common convention in Basic4PPC documentation.
The Sprite1 and Sprite2 properties of a GameWindow are not Sprite objects but are properties returning a reference to a Sprite object.
I can't make out whether 'Sprite.New1' MUST be used or could it have been fred.New1???
You can call it whatever you want. The example sprite program uses Sprite.New1 & Spr1.New1 & Spr2.New1 to create "empty" Sprite objects . Their Value property will be empty until another Sprite reference is assigned to them. This means, as I said before, that you can code once using those objects then manipulate any Sprite whose reference is assigned to them.