If there is no change in the Y value of the end points of a line, The attempt to get a polygon from line.Buffer ignores the BufferCapType specified and returns a Round end.
MultilineShape line = new PointShape( previousShape.X, previousShape.Y ).GetShortestLineTo( new PointShape( pointShape.X, pointShape.Y ), GeographyUnit.DecimalDegree );
MultipolygonShape bufferedLine = line.Buffer(bufferWidth, 3, BufferCapType.Butt, GeographyUnit.DecimalDegree, DistanceUnit.Meter);