www.neuron.yale.edu

Particularly useful chunks of hoc and/or NMODL code. May be pedestrian or stunningly brilliant, may make you gasp or bring tears to your eyes, but always makes you think "I wish I had written that; I'm sure going to steal it."

diam is a range variable. For any range variable, diam(x) refers to the value at the center of the segment that contains x. For x that lies on a boundary between segments, the value you get will be determined by roundoff error. For x = 0 or 1, the values will be from the middle of the first or last segment, respectively. This stuff is covered in chapters 5 and 6 of the NEURON Book. If you don't have that, at the very least read this
Hines, M.L. and Carnevale, N.T. The NEURON simulation environment. Neural Computation 9:1179-1209, 1997.
Preprint is available at http://www.neuron.yale.edu/neuron/nrnpubs

Depends on what you mean by "correct." From the standpoint of the equations that are solved in the course of a simulation, the relevant value is the diameter of the segment, which is diam(x). If 3d points exist, diam(x) becomes the diameter of a right cylinder with the same length and surface area as the segment that contains x. If define_shape() is called (either directly or by creating a Shape plot), 3d points are created for sections that were originally specified using the stylized method; this can cause slight changes to diam(x), area(x), and ri values--see 5.5.3 Avoiding artefacts in The NEURON Book. To minimize this effect, it is best to try to ensure that sudden diameter changes occur only at the boundaries of sections.